初阶项目一-集成一套linux系统:红帽系统,LVM分区,Apache服务,MySQL服务,数据定时备份脚本
一.项目目标
根据公司要求:集成一套LINUX系统,按照规定进行分区划分,组建LVM分区,创建用户;部署一套web+mysql,并通过shell脚本+cron执行定期自动备份数据。
二.实施工具
本次软件实施需要用到的工具: VMware Workstation虚拟机、rhel-server-7.5-x86_64-dvd.iso镜像文件、xshell远程连接工具。
三.项目实施计划
1.安装rhel7.5系统
- 首先,使用VMware Workstation12虚拟机进行模拟安装,操作系统是rhel7.5的版本,由于在实际工作环境中一般都是接触不了服务器的,都是通过远程工具xshell、crt这些工具进行远程连接操作,所以服务器是安装带gui的图形化界面,而在安装好操作系统之,可以通过配置/etc/sysconfig/network-scritpts/ifcfg-ensxx修改网卡信息,或者使用命令nmtui进行网卡的配置;
- 配置本地yum,满足后期安装各种软件或工具的需求;
- 在安装好操作系统之后关掉防火墙和Selinux,并设置防火墙开机不启动;
- 在上面的都配置后之后,需要为系统做一个快照,以防止以后系统出现不可修复的问题时,可以快速恢复系统,不影响应用的正常运行。
2.组建LVM分区:LVM分区比标准分区更好扩展,方便后期分区容量不足时,进行扩容。
3.安装apache服务
- ISO光盘镜像中有Apache程序,所以可以通过yum的方式来安装apache服务;
- 通过Web浏览器访问Apache的地址,测试Apache是否安装成功。
4.安装MySQL服务。
5.自动备份数据
通过cron和shell脚本自动备份数据;
在完成cron和shell备份之后,在shell脚本中添加自动删除5天前的备份数据。
四.安装rhel7.5操作系统
4.1 配置虚拟机
1.在虚拟机的主页上点击创建新的虚拟主机
2.选择自定义,然后下一步
3.一直默认下一步,直到选择安装源时选择稍后安装系统
4.客户机的操作系统选择linux,由于我们需要安装的时rhel7.5 64位的系统,所以在下面的版本选择Red Hat Enterprise Linux 7 64 位,
然后下一步
5.选择虚拟机的名称和虚拟机安装的位置,路径最好是自己选择,这样方便以后做迁移
6.一路默认,在选择网络的时候选择仅主机模式
7.一直下一步,直到选择磁盘,选择创建新虚拟磁盘,点击下一步
8.选择磁盘的容量和磁盘是否为单个文件,本人在这里的选择是磁盘大小20G,为单个文件,点击下一步
9.在这一步可以自定义硬件,也可以点击完成,在后面在完善虚拟机的硬件信息,本人是选择之后再配置硬件信息,所以是直接点击完成
10.配置完成之后可以在界面看到配置好的主机信息
选择编辑虚拟机设置
11.由于声卡和打印机可以不要,所以可以点击移除,而安装系统需要镜像即iso文件,所以在CD/DVD选择你的镜像文件
12.自此,虚拟机的配置就完成了,下面开始安装操作系统。
4.2 安装操作系统
1.点击开启此虚拟机
界面说明:
Install Red Hat Enterprise Linux 7.2 安装RHEL7.2
Test this media & install Red HatEnterprise Linux 7.2 测试安装文件并安装RHEL 7.2
Troubleshooting 修复故障
2.在这一步可以点击回车继续安装,或者等待一会自动继续安装
3.选择语言:简体中文(新手选择中文,老手选择英文)
4.需要把界面上的都配置好才可以进行下一步的安装,本地化的日期和时间、键盘和语言支持都选默认,不用修改
5.把SECURITY的开启改为关闭
6.选择服务器的软件安装,这里选择的是带GUI的服务器,但是由于在实际环境中都是通过xshell、crt这些远程工具连接的,所以后期安装好系统之后也会用远程工具进行连接
7.选择安装位置,进行磁盘分区
8.选择-其它存储选项-分区-我要配置分区,点左上角的“完成”,进入下面的界面,在分区方案有标准分区,btrfs,LVM,LVM简单配置,这里默认LVM就可以,然后单击"+"创建新的分区,分区提前规划好,一般swap分区为物理内存的1.5~2倍,/boot分区300M-500M,/home分区给2G,剩余的空间全部给/分区,实际工作中可以创建数据分区,一般把数据和系统分开
创建/boot分区
9.设备类型选择默认的标准分区,文件系统类型为xfs,RHEL7支持brtfs,生产环境不建议选择,btrfs文件系统目前技术尚未成熟,只是作为一种前瞻技术
10.创建/swap分区
11.创建/home分区
12.创建/分区(期望容量不填,代表把剩余的所有空间都给/分区)
13.选择接受更改(这里相当于windows的格式化分区)
14.配置网络,选择开启,开启之后会自动获取一个ip,如果需要手动配置的话,可以选择配置,也可以在系统安装完成之后再进行配置,在这里就先不配置,等安装好系统之后再进行配置,然后点击开始安装
15.设置root密码,这里提示密码强度较差,因为是虚拟机所以密码不用太复杂,但在实际环境中,密码的设定需要符合安全性的标准
16.下图代表操作系统正在安装,等待即可
17.安装完成之后,点击重启,进行最后的配置
18.进入启动界面
19.首次启动许可配置,选择同意许可协议即可
20.点击完成配置
21.最后确认语言和键盘输入
22.配置时区,如果在前面开启了网络,这里会自动获取时区,如果没有开启的话,可以选择shangghai会自动出现相关的选项
23.配置登陆的个人账号密码
24.系统到这里已经正式安装完成
4.3 系统配置
4.3.1 网络配置
1.网络配置可以使用nmtui、nmtui-connect和修改配置文件3种方法,配置网络需要使用root用户。查看网卡的信息,可以使用ifconfig
或ip addr, 由于在安装的时候没有开启网络,所以ifconfig是看不到相应的ip地址信息的。
2.配置静态IP,网卡配置信息地址:/etc/sysconfig/network-scripts/ifcfg-ensxx (网卡一般是ens开头的,后面是随机的数字),使用vim
编辑器修改之后用:wq或者:x保存退出
[root@localhost ~]# vim /etc/sysconfig/network-scripts/ifcfg-ens33
[root@localhost ~]# cat /etc/sysconfig/network-scripts/ifcfg-ens33
TYPE="Ethernet"
PROXY_METHOD="none"
BROWSER_ONLY="no"
BOOTPROTO="static"
DEFROUTE="yes"
IPV4_FAILURE_FATAL="no"
#IPV6INIT="yes"
#IPV6_AUTOCONF="yes"
#IPV6_DEFROUTE="yes"
#IPV6_FAILURE_FATAL="no"
#IPV6_ADDR_GEN_MODE="stable-privacy"
NAME="ens33"
UUID="1d4c270e-2a48-474d-b963-ad0e68eafbcd"
DEVICE="ens33"
ONBOOT="yes"
DNS1=114.114.114.114
IPADDR=192.168.110.184
NETMASK=255.255.255.0
GATEWAY=192.168.110.2
ZONE=
3.重启网络服务(systemctl restart NetworkManager和service network restart任选其一即可)
#重启网卡
[root@localhost ~]# systemctl restart NetworkManager
#查看网卡状态
[root@localhost ~]# systemctl status NetworkManager
● NetworkManager.service - Network Manager
Loaded: loaded (/usr/lib/systemd/system/NetworkManager.service; enabled; vendor preset: enabled)
Active: active (running) since Tue 2020-12-15 10:32:54 CST; 8s ago
Docs: man:NetworkManager(8)
Main PID: 100634 (NetworkManager)
CGroup: /system.slice/NetworkManager.service
├─100634 /usr/sbin/NetworkManager --no-daemon
└─100657 /sbin/dhclient -d -q -sf /usr/libexec/nm-dhcp-helper -pf /var/run/dhclient-ens37.pid -lf /var/lib/NetworkManager/dhclient-31881a66-4327-3e39-a2ab-b060a3b74062-ens37.lease -cf /var/lib/Ne...
......
[root@localhost ~]# service network restart
Restarting network (via systemctl): [ OK ]
[root@localhost ~]# service network status
Configured devices:
lo ens33
Currently active devices:
lo ens33
4.添加DNS
[root@localhost ~]# vim /etc/resolv.conf
[root@localhost ~]# cat /etc/resolv.conf
# Generated by NetworkManager
search localdomain
nameserver 192.168.110.2
nameserver 114.114.114.114
5.测试网络是否畅通
#-c:代表ping的次数
#有数据返回代表网络正常
[root@localhost ~]# ping -c 4 www.g.cn
PING www.g.cn (203.208.40.98) 56(84) bytes of data.
64 bytes from 203.208.40.98 (203.208.40.98): icmp_seq=1 ttl=128 time=27.9 ms
64 bytes from 203.208.40.98 (203.208.40.98): icmp_seq=2 ttl=128 time=28.7 ms
64 bytes from 203.208.40.98 (203.208.40.98): icmp_seq=3 ttl=128 time=28.4 ms
64 bytes from 203.208.40.98 (203.208.40.98): icmp_seq=4 ttl=128 time=28.5 ms
--- www.g.cn ping statistics ---
4 packets transmitted, 4 received, 0% packet loss, time 3007ms
rtt min/avg/max/mdev = 27.921/28.417/28.746/0.305 ms
4.3.2 修改主机名
1.方法一:使用命令:nmtui
[root@localhost ~]# nmtui
2.方法二:命令:hostnamectl set-hostname 需要修改的主机名
[root@localhost ~]# hostnamectl set-hostname node5
[root@localhost ~]# hostname
node5
修改主机名之后重启系统,输入账号密码之后就发现主机名已经变成刚才设置的了
4.3.3 关闭防火墙和selinux
1.关闭防火墙
#关闭防火墙
[root@node5 ~]# systemctl stop firewalld
#禁止防火墙开机自启动
[root@node5 ~]# systemctl disable firewalld
#查看防火墙是否成功禁止开机自启,命令:systemctl status firewalld.service
#因为在前面已经关掉防火墙和禁止开机自启,所以查看一下防火墙状态即可
[root@node5 ~]# systemctl status firewalld
● firewalld.service - firewalld - dynamic firewall daemon
Loaded: loaded (/usr/lib/systemd/system/firewalld.service; disabled; vendor preset: enabled)
Active: inactive (dead)
Docs: man:firewalld(1)
#查看防火墙是否禁止开机自启动
[root@node5 ~]# systemctl is-enabled firewalld
disabled
2.关闭selinux:selinux配置文件的路径:/etc/selinux/config,把SELINUX=enforcing注释,在最后添加一行SELINUX=disabled,保存退出之后重启系统
[root@node5 ~]# vim /etc/selinux/config
[root@node5 ~]# cat /etc/selinux/config
# This file controls the state of SELinux on the system.
# SELINUX= can take one of these three values:
# enforcing - SELinux security policy is enforced.
# permissive - SELinux prints warnings instead of enforcing.
# disabled - No SELinux policy is loaded.
SELINUX=disabled
# SELINUXTYPE= can take one of three two values:
# targeted - Targeted processes are protected,
# minimum - Modification of targeted policy. Only selected processes are protected.
# mls - Multi Level Security protection.
SELINUXTYPE=targeted
#查看selinux是否关闭
#命令为:getenforce或sestatus -v
[root@node5 ~]# getenforce
Disabled
[root@node5 ~]# sestatus -v
SELinux status: disabled
4.3.4 配置本地yum源
1.挂载光盘
[root@node5 ~]# mount /dev/sr0 /media
2.编辑yum源配置文件,路径:/etc/yum.repos.d
[root@node5 ~]# vim /etc/yum.repos.d/dvd.repo
[dvd] #yum源名称,唯一的,用来区分不同的yum源
name=yum server #对yum源描述信息
baseurl=file:///media #yum源的路径(repodata目录所在的目录)
enabled=1 #为1,表示启用yum源
gpgcheck=0 #为1,表示使用公钥检验rpm的正确性
3.清除缓存信息,更新yum菜单
[root@node5 ~]# yum clean all
[root@node5 ~]# yum list
4.测试yum是否配置成功,能安装软件就成功
[root@node5 ~]# yum -y install gcc
5.设置开机自动挂载iso镜像文件,把光盘写进/etc/fstab,实现开机自启,命令: echo '/dev/sr0 /media iso9660 defaults 0 0'>>/etc/fstab
[root@node5 ~]# echo '/dev/sr0 /media iso9660 defaults 0 0'>>/etc/fstab
4.3.5 创建快照
选中虚拟机->快照->拍摄快照->名称按自己的需要(我的是配置好yum源的,名称就写yum源已配置)->描述可写可不写(怕自己忘记可以在描述中讲述除了yum源还配置了什么或者做了什么操作)
正在做快照
五.组建LVM
1.新添加一块30G的硬盘
2.创建挂载点
[root@node5 ~]# mkdir -p /backup/web /backup/app /backup/tools /backup/logs
3.创建分区(gdisk或者fdisk)
#lsblk查看磁盘情况,发现新增的磁盘没有出现,重启即可
[root@node5 ~]# lsblk
NAME MAJ:MIN RM SIZE RO TYPE MOUNTPOINT
sda 8:0 0 35G 0 disk
├─sda1 8:1 0 1G 0 part /boot
└─sda2 8:2 0 19G 0 part
├─centos-root 253:0 0 17G 0 lvm /
└─centos-swap 253:1 0 2G 0 lvm [SWAP]
sdb 8:16 0 1G 0 disk
├─sdb1 8:17 0 50M 0 part /sdb1
├─sdb2 8:18 0 1K 0 part
├─sdb5 8:21 0 200M 0 part /sdb5
└─sdb6 8:22 0 298M 0 part /sdb6
sr0 11:0 1 1024M 0 rom
#重启机器
[root@node5 ~]# init 6
#新增的磁盘sdc出现了
[root@node5 ~]# lsblk
NAME MAJ:MIN RM SIZE RO TYPE MOUNTPOINT
sda 8:0 0 35G 0 disk
├─sda1 8:1 0 1G 0 part /boot
└─sda2 8:2 0 19G 0 part
├─centos-root 253:0 0 17G 0 lvm /
└─centos-swap 253:1 0 2G 0 lvm [SWAP]
sdb 8:16 0 1G 0 disk
├─sdb1 8:17 0 50M 0 part /sdb1
├─sdb2 8:18 0 1K 0 part
├─sdb5 8:21 0 200M 0 part /sdb5
└─sdb6 8:22 0 298M 0 part /sdb6
sdc 8:32 0 30G 0 disk
sr0 11:0 1 1024M 0 rom
#使用gdisk进行磁盘分区,也可以使用fdisk进行磁盘分区
[root@node5 ~]# gdisk /dev/sdc
GPT fdisk (gdisk) version 0.8.10
Partition table scan:
MBR: not present
BSD: not present
APM: not present
GPT: not present
Creating new GPT entries.
#新增分区
Command (? for help): n
Partition number (1-128, default 1):
First sector (34-62914526, default = 2048) or {+-}size{KMGTP}:
Last sector (2048-62914526, default = 62914526) or {+-}size{KMGTP}:
Current type is 'Linux filesystem'
#L查看所有分区类型
Hex code or GUID (L to show codes, Enter = 8300): L
0700 Microsoft basic data 0c01 Microsoft reserved 2700 Windows RE
3000 ONIE boot 3001 ONIE config 4100 PowerPC PReP boot
4200 Windows LDM data 4201 Windows LDM metadata 7501 IBM GPFS
7f00 ChromeOS kernel 7f01 ChromeOS root 7f02 ChromeOS reserved
8200 Linux swap 8300 Linux filesystem 8301 Linux reserved
8302 Linux /home 8400 Intel Rapid Start 8e00 Linux LVM
a500 FreeBSD disklabel a501 FreeBSD boot a502 FreeBSD swap
a503 FreeBSD UFS a504 FreeBSD ZFS a505 FreeBSD Vinum/RAID
a580 Midnight BSD data a581 Midnight BSD boot a582 Midnight BSD swap
a583 Midnight BSD UFS a584 Midnight BSD ZFS a585 Midnight BSD Vinum
a800 Apple UFS a901 NetBSD swap a902 NetBSD FFS
a903 NetBSD LFS a904 NetBSD concatenated a905 NetBSD encrypted
a906 NetBSD RAID ab00 Apple boot af00 Apple HFS/HFS+
af01 Apple RAID af02 Apple RAID offline af03 Apple label
af04 AppleTV recovery af05 Apple Core Storage be00 Solaris boot
bf00 Solaris root bf01 Solaris /usr & Mac Z bf02 Solaris swap
bf03 Solaris backup bf04 Solaris /var bf05 Solaris /home
bf06 Solaris alternate se bf07 Solaris Reserved 1 bf08 Solaris Reserved 2
bf09 Solaris Reserved 3 bf0a Solaris Reserved 4 bf0b Solaris Reserved 5
c001 HP-UX data c002 HP-UX service ea00 Freedesktop $BOOT
eb00 Haiku BFS ed00 Sony system partitio ed01 Lenovo system partit
Press the <Enter> key to see more codes:
ef00 EFI System ef01 MBR partition scheme ef02 BIOS boot partition
fb00 VMWare VMFS fb01 VMWare reserved fc00 VMWare kcore crash p
fd00 Linux RAID
#因为我们要创建LVM分区,所以选择8e00 Linux LVM
Hex code or GUID (L to show codes, Enter = 8300): 8e00
Changed type of partition to 'Linux LVM'
#打印分区信息
Command (? for help): p
Disk /dev/sdc: 62914560 sectors, 30.0 GiB
Logical sector size: 512 bytes
Disk identifier (GUID): 572B0DFD-325C-43E9-A641-6D287FB1F121
Partition table holds up to 128 entries
First usable sector is 34, last usable sector is 62914526
Partitions will be aligned on 2048-sector boundaries
Total free space is 2014 sectors (1007.0 KiB)
Number Start (sector) End (sector) Size Code Name
1 2048 62914526 30.0 GiB 8E00 Linux LVM
#保存退出
Command (? for help): w
Final checks complete. About to write GPT data. THIS WILL OVERWRITE EXISTING
PARTITIONS!!
Do you want to proceed? (Y/N): Y
OK; writing new GUID partition table (GPT) to /dev/sdc.
The operation has completed successfully.
4.创建LVM
#上一步进行磁盘分区之后,现在出现了/dev/sdc1分区,现在进行格式化成PV
[root@node5 ~]# ls /dev/sdc*
/dev/sdc /dev/sdc1
#创建PV
[root@node5 ~]# pvcreate /dev/sdc1
Physical volume "/dev/sdc1" successfully created.
#创建VG
[root@node5 ~]# vgcreate diskvg /dev/sdc1
Volume group "diskvg" successfully created
#创建容量为10G的LV
[root@node5 ~]# lvcreate -L 10g -n weblv diskvg
Logical volume "weblv" created.
#创建容量为2G的LV
[root@node5 ~]# lvcreate -L 2g -n applv diskvg
Logical volume "applv" created.
#创建容量为10G的LV
[root@node5 ~]# lvcreate -L 10g -n toolslv diskvg
Logical volume "toolslv" created.
#创建容量为1G的LV
[root@node5 ~]# lvcreate -L 1g -n logslv diskvg
Logical volume "logslv" created.
5.格式化
#把LV格式化为xfs文件系统
[root@node5 ~]# mkfs.xfs /dev/diskvg/weblv
meta-data=/dev/diskvg/weblv isize=512 agcount=4, agsize=655360 blks
= sectsz=512 attr=2, projid32bit=1
= crc=1 finobt=0, sparse=0
data = bsize=4096 blocks=2621440, imaxpct=25
= sunit=0 swidth=0 blks
naming =version 2 bsize=4096 ascii-ci=0 ftype=1
log =internal log bsize=4096 blocks=2560, version=2
= sectsz=512 sunit=0 blks, lazy-count=1
realtime =none extsz=4096 blocks=0, rtextents=0
[root@node5 ~]#
[root@node5 ~]#
[root@node5 ~]# mkfs.xfs /dev/diskvg/applv
meta-data=/dev/diskvg/applv isize=512 agcount=4, agsize=131072 blks
= sectsz=512 attr=2, projid32bit=1
= crc=1 finobt=0, sparse=0
data = bsize=4096 blocks=524288, imaxpct=25
= sunit=0 swidth=0 blks
naming =version 2 bsize=4096 ascii-ci=0 ftype=1
log =internal log bsize=4096 blocks=2560, version=2
= sectsz=512 sunit=0 blks, lazy-count=1
realtime =none extsz=4096 blocks=0, rtextents=0
[root@node5 ~]#
[root@node5 ~]#
[root@node5 ~]# mkfs.xfs /dev/diskvg/toolslv
meta-data=/dev/diskvg/toolslv isize=512 agcount=4, agsize=655360 blks
= sectsz=512 attr=2, projid32bit=1
= crc=1 finobt=0, sparse=0
data = bsize=4096 blocks=2621440, imaxpct=25
= sunit=0 swidth=0 blks
naming =version 2 bsize=4096 ascii-ci=0 ftype=1
log =internal log bsize=4096 blocks=2560, version=2
= sectsz=512 sunit=0 blks, lazy-count=1
realtime =none extsz=4096 blocks=0, rtextents=0
[root@node5 ~]#
[root@node5 ~]# mkfs.xfs /dev/diskvg/logslv
meta-data=/dev/diskvg/logslv isize=512 agcount=4, agsize=65536 blks
= sectsz=512 attr=2, projid32bit=1
= crc=1 finobt=0, sparse=0
data = bsize=4096 blocks=262144, imaxpct=25
= sunit=0 swidth=0 blks
naming =version 2 bsize=4096 ascii-ci=0 ftype=1
log =internal log bsize=4096 blocks=2560, version=2
= sectsz=512 sunit=0 blks, lazy-count=1
realtime =none extsz=4096 blocks=0, rtextents=0
6.把逻辑卷挂载到目录
#把LV挂载到目录上
[root@node5 ~]# mount /dev/mapper/diskvg-weblv /backup/web/
[root@node5 ~]#
[root@node5 ~]# mount /dev/mapper/diskvg-applv /backup/app/
[root@node5 ~]#
[root@node5 ~]# mount /dev/mapper/diskvg-toolslv /backup/tools/
[root@node5 ~]#
[root@node5 ~]# mount /dev/mapper/diskvg-logslv /backup/logs/
7.设置开机自动挂载分区
#blkid查看分区的UUID
[root@node5 ~]# blkid
/dev/sdb1: UUID="ddcb232e-96ca-4e54-935a-3100e81dbce4" TYPE="xfs"
/dev/sdb5: UUID="ddb20b01-0912-4c95-a304-980dc5c70659" TYPE="ext4"
/dev/sdb6: UUID="457d31a7-28d8-424d-87fe-cca3fe9b907c" TYPE="xfs"
/dev/sda1: UUID="6503b4ad-2975-4152-a824-feb7bea1b622" TYPE="xfs"
/dev/sda2: UUID="nqZ4uJ-ksnN-KzYS-N42b-00m3-Ohc2-BJXunP" TYPE="LVM2_member"
/dev/sdc1: UUID="1OMTEO-ewOI-eSfH-QkM4-3yy2-fAFE-GljDN7" TYPE="LVM2_member" PARTLABEL="Linux LVM" PARTUUID="5f8c525f-e394-4e11-a6c1-d4ee4b82dd1f"
/dev/mapper/centos-root: UUID="c1d38b37-821d-48e7-8727-3937ccc657a4" TYPE="xfs"
/dev/mapper/centos-swap: UUID="c2fcaf11-42d8-4e4c-bf9e-6464f0777198" TYPE="swap"
/dev/mapper/diskvg-weblv: UUID="5fcc4412-52b3-46b0-b428-8d57d590964c" TYPE="xfs"
/dev/mapper/diskvg-applv: UUID="041e2bd3-9115-4ab7-9151-1382006945c0" TYPE="xfs"
/dev/mapper/diskvg-toolslv: UUID="27397965-9079-4cd1-8140-4063b4c8b255" TYPE="xfs"
/dev/mapper/diskvg-logslv: UUID="e1eb72f4-cf6c-419e-9ef5-67a021437d8c" TYPE="xfs"
[root@node5 ~]# echo "UUID=5fcc4412-52b3-46b0-b428-8d57d590964c /backup/web/ xfs defaults 0 0" >> /etc/fstab
[root@node5 ~]# echo "UUID=041e2bd3-9115-4ab7-9151-1382006945c0 /backup/app/ xfs defaults 0 0" >> /etc/fstab
[root@node5 ~]# echo "UUID=27397965-9079-4cd1-8140-4063b4c8b255 /backup/tools/ xfs defaults 0 0" >> /etc/fstab
[root@node5 ~]# echo "UUID=e1eb72f4-cf6c-419e-9ef5-67a021437d8c /backup/logs/ xfs defaults 0 0" >> /etc/fstab
[root@node5 ~]# cat /etc/fstab
#
# /etc/fstab
# Created by anaconda on Fri Apr 26 17:09:16 2019
#
# Accessible filesystems, by reference, are maintained under '/dev/disk'
# See man pages fstab(5), findfs(8), mount(8) and/or blkid(8) for more info
#
/dev/mapper/centos-root / xfs defaults 0 0
UUID=6503b4ad-2975-4152-a824-feb7bea1b622 /boot xfs defaults 0 0
/dev/mapper/centos-swap swap swap defaults 0 0
192.168.110.180:/webapp /usr/local/apache-tomcat-8.0.51/webapps/ROOT/ nfs _netdev 0 0
/dev/sdb1 /sdb1 xfs defaults 0 0
/dev/sdb5 /sdb5 ext4 defaults 0 0
/dev/sdb6 /sdb6 xfs defaults 0 0
UUID=5fcc4412-52b3-46b0-b428-8d57d590964c /backup/web/ xfs defaults 0 0
UUID=041e2bd3-9115-4ab7-9151-1382006945c0 /backup/app/ xfs defaults 0 0
UUID=27397965-9079-4cd1-8140-4063b4c8b255 /backup/tools/ xfs defaults 0 0
UUID=e1eb72f4-cf6c-419e-9ef5-67a021437d8c /backup/logs/ xfs defaults 0 0
#mount -a命令自动挂载/etc/fstab里的分区
[root@node5 ~]# mount -a
8.查看最终分区情况
[root@node5 ~]# df -h
Filesystem Size Used Avail Use% Mounted on
/dev/mapper/centos-root 17G 13G 4.4G 75% /
devtmpfs 3.9G 0 3.9G 0% /dev
tmpfs 3.9G 8.0K 3.9G 1% /dev/shm
tmpfs 3.9G 8.8M 3.9G 1% /run
tmpfs 3.9G 0 3.9G 0% /sys/fs/cgroup
/dev/sdb5 190M 1.6M 175M 1% /sdb5
/dev/sdb1 47M 2.7M 45M 6% /sdb1
/dev/sda1 1014M 125M 890M 13% /boot
/dev/sdb6 295M 16M 280M 6% /sdb6
tmpfs 785M 0 785M 0% /run/user/0
/dev/mapper/diskvg-weblv 10G 33M 10G 1% /backup/web
/dev/mapper/diskvg-applv 2.0G 33M 2.0G 2% /backup/app
/dev/mapper/diskvg-toolslv 10G 33M 10G 1% /backup/tools
/dev/mapper/diskvg-logslv 1014M 33M 982M 4% /backup/logs
六.使用yum安装apache服务
1.查看是否已经安装了apache,没有就用yum安装。
#查看有无httpd的包,没有就代表没有安装httpd服务
[root@node5 ~]# rpm -qa | grep httpd
#yum安装会解决依赖包的问题
#安装httpd、mariadb服务
[root@node5 ~]# yum -y install httpd mariadb-server mysql mariadb
2.查看httpd服务状态
[root@node5 ~]# systemctl status httpd
● httpd.service - The Apache HTTP Server
Loaded: loaded (/usr/lib/systemd/system/httpd.service; disabled; vendor preset: disabled)
Active: inactive (dead)
Docs: man:httpd(8)
man:apachectl(8)
3.开启httpd服务
[root@node5 ~]# systemctl start httpd
[root@node5 ~]# systemctl status httpd
● httpd.service - The Apache HTTP Server
Loaded: loaded (/usr/lib/systemd/system/httpd.service; disabled; vendor preset: disabled)
Active: active (running) since Tue 2020-12-15 18:04:28 CST; 2s ago
Docs: man:httpd(8)
man:apachectl(8)
Main PID: 4529 (httpd)
Status: "Processing requests..."
CGroup: /system.slice/httpd.service
├─4529 /usr/sbin/httpd -DFOREGROUND
├─4530 /usr/sbin/httpd -DFOREGROUND
├─4531 /usr/sbin/httpd -DFOREGROUND
├─4532 /usr/sbin/httpd -DFOREGROUND
├─4533 /usr/sbin/httpd -DFOREGROUND
└─4534 /usr/sbin/httpd -DFOREGROUND
Dec 15 18:04:28 node5 systemd[1]: Starting The Apache HTTP Server...
Dec 15 18:04:28 node5 httpd[4529]: AH00558: httpd: Could not reliably determine the server's fully qualified domain name, using 192.168.110.184. Set the 'ServerName' directive globally to suppress this message
Dec 15 18:04:28 node5 systemd[1]: Started The Apache HTTP Server.
Hint: Some lines were ellipsized, use -l to show in full.
#停止服务的命令是:
[root@node5 ~]# systemctl stop httpd
#把httpd设置为开机自启动
[root@node5 ~]# systemctl enable httpd
4.测试能否访问:使用浏览器访问IP地址即可,比如:http://192.168.110.184/,如果出现以下界面,说明Apache服务安装成功,功能正常。
5.把/etc/passwd复制到/var/www/html,并改名为index.html
[root@node5 ~]# cp /etc/passwd /var/www/html/index.html
cp: overwrite ‘/var/www/html/index.html’? y
6.使用浏览器进行访问
通过上面的测试,httpd能正常访问,apache服务搭建完成。
七.自动备份数据
1.创建备份脚本和上传脚本
#创建备份脚本:备份/var/www/html目录下的日志
[root@node5 ~]# vim ~/backup.sh
[root@node5 ~]# cat ~/backup.sh
#!/bin/bash
find /backup -name "*_tar.gz" -mtime +5 -delete &> /dev/null
tar -zcvf /backup/`date +%Y-%m-%d`_tar.gz /var/www/html &> /dev/null
[root@node5 ~]# chmod +x ~/backup.sh
#创建上传脚本:把192.168.110.184的备份文件上传给192.168.110.186
[root@node5 ~]# vim ~/upload.sh
#!/bin/bash
IP=192.168.110.186
DIR=/backup
scp $DIR/*_tar.gz root@$IP:$DIR &> /dev/null
[root@node5 ~]# chmod +x ~/upload.sh
2.设置定时任务
#设置定时任务
[root@node5 ~]# crontab -e
[root@node5 ~]# crontab -l
30 1 * * * bash ~/backup.sh
0 5 * * * bash ~/upload.sh
3.由于需要把192.168.110.184的备份文件上传给192.168.110.186,所以配置node5和node8之间ssh免密登录
[root@node5 ~]# ssh-keygen
Generating public/private rsa key pair.
Enter file in which to save the key (/root/.ssh/id_rsa):
Enter passphrase (empty for no passphrase):
Enter same passphrase again:
Your identification has been saved in /root/.ssh/id_rsa.
Your public key has been saved in /root/.ssh/id_rsa.pub.
The key fingerprint is:
SHA256:4Sb6zDBrHbGlK0aOhQs9ityD19qQbWAGNPDYiYtm1zU root@node5
The key's randomart image is:
+---[RSA 2048]----+
|oo |
|.=.. |
|o.+ E. |
|... . o.o. |
|o+ * ..=S |
|+ B *.+o |
|oooX=+ o |
|ooo+OOo |
| .++o+ |
+----[SHA256]-----+
[root@node5 ~]# ssh-copy-id root@192.168.110.186
/usr/bin/ssh-copy-id: INFO: Source of key(s) to be installed: "/root/.ssh/id_rsa.pub"
/usr/bin/ssh-copy-id: INFO: attempting to log in with the new key(s), to filter out any that are already installed
/usr/bin/ssh-copy-id: INFO: 1 key(s) remain to be installed -- if you are prompted now it is to install the new keys
root@192.168.110.186's password:
Number of key(s) added: 1
Now try logging into the machine, with: "ssh 'root@192.168.110.186'"
and check to make sure that only the key(s) you wanted were added.
4.创建node8的接收备份文件的目录
[root@node8 ~]# mkdir /backup
[root@node8 ~]# systemctl restart crond #重启crond服务
[root@node8 ~]# systemctl enable crond #设置开机自启动
初阶项目一-集成一套linux系统:红帽系统,LVM分区,Apache服务,MySQL服务,数据定时备份脚本的更多相关文章
- Linux操作系统Centos7.2版本搭建Apache+PHP+Mysql环境
对于在校大学生来说腾讯云1元主机很划算,所以就申请了一台,打算在上面学习下linux,使用版本为centos7.2版本.在服务器上比较推荐centos,此版本生命周期较长,而且网上有关centos的教 ...
- linux下应用crontab对mysql数据库进行定时备份
linux下应用crontab对mysql数据库进行定时备份 @(编程) mysql数据库提供了备份命令mysqldump,可以结合crontab命令进行定时备份. 我写了一个mysqlbackup. ...
- Linux实现MYSQl数据库的定时备份
今天给大家分享一下如何在Linux下实现MYSQl数据库的定时备份. 前提需要保证你的Linux服务器已经安装了MYSQl数据库服务. 1.创建shell脚本 vim backupdb.sh 创建脚本 ...
- Linux和windows 平台下启动和关闭mysql服务
Linux平台下启动和关闭mysql服务 一.linux下查看mysql服务的两种方式: 方式一: [root@localhost bin]ps -ef|grep mysql 方式二: [root@l ...
- Linux服务器上搭建Centos7.0+Apache+php+Mysql网站
一.安装Linux系统 1.1虚拟机搭建Linux Centos7.0版本,搭建过程省略. 二. 安装apache.php.mysql.php-gd等组件. 2.1安装Apache服务程序(apach ...
- Slog27_支配vue框架初阶项目之博客网站-样式居中
ArthurSlog SLog-27 Year·1 Guangzhou·China July 30th 2018 GitHub 掘金主页 简书主页 segmentfault 没有写够足够的代码量,想成 ...
- Linux中使用mysqldump对MySQL数据库进行定时备份
#!/bin/bash PATH=/bin:/sbin:/usr/bin:/usr/sbin:/usr/local/bin:/usr/local/sbin:~/bin export PATH expo ...
- mysql主从集群定时备份脚本
#!/bin/bash dpath="/mysql_backup" mydays="7" username="root" mysql_p ...
- linux下mysql的数据库简单备份脚本
应用于整个库的备份. #!/bin/bash PATH=$PATH:/usr/local/mysql/bin:/usr/local/mysql/sbin # 数据库名称 databases=(myna ...
随机推荐
- Javac编译器详解
学习<深入了解Java虚拟机>有一段时间了,大概理解了Java从源代码编译到执行出结果的过程,也能明确的知道Java是半解释性语言.在执行源代码时,先通过Javac编译器对源代码进行词法分 ...
- PHP+Ajax点击加载更多内容
css样式: <style type="text/css"> #more{margin:10px auto;width: 560px; border: 1px soli ...
- [原题复现+审计][0CTF 2016] WEB piapiapia(反序列化、数组绕过)[改变序列化长度,导致反序列化漏洞]
简介 原题复现: 考察知识点:反序列化.数组绕过 线上平台:https://buuoj.cn(北京联合大学公开的CTF平台) 榆林学院内可使用信安协会内部的CTF训练平台找到此题 漏洞学习 数组 ...
- 关于Java集合框架,这篇讲的还算不错了,建议大家看看!
集合框架 为什么要用集合而非数组: 虽然数组是保存一组对象最有效的方式,但是数组具有固定尺寸,但在写程序时并不知道将需要多少个对象.而集合能够自动地调整自己的尺寸. 打印数组时,必须使用Arrays. ...
- 关于Java里方法重载
覆盖和重载很重要,并且比较容易混淆,所以面试中常见.基础回答:覆盖(Override),又叫重写,是指子类对父类方法的一种重写,方法名.参数列表必须相同,返回值小于父类,只能比父类抛出更少的异常,访问 ...
- C3PO数据库连接池
1 <?xml version="1.0" encoding="UTF-8"?> 2 3 -<c3p0-config> 4 5 6 -& ...
- yii2.0 关于 ActiveForm 中 checkboxList 的使用
在视图中创建复选框,列出复选框内的内容其中$id 为 列出在复选框中的数组 //$ids:所有要显示的checkbox(Array)<?=$form->field($model, 'id' ...
- C语言讲义——链表的实现
节点(结构体描述) struct Node { int _id; char s[50]; struct Node* pre;// 指向前一个节点的地址 struct Node* next;// 指向下 ...
- 分享:经常说你精通C语言,看看这十道题你会不会解!
今天给大家分享我们在日常工作中可能遇到的疑问,不看答案,你是否有把握都能答对?让我们来试试吧~ 一.会输出"hello-std-out"? 参考答案: stdout和stder ...
- B 站今日黑白页是怎么实现的?
今天是2020年4月4日哀悼活动,不少相关站点都将网站全部变为灰色,以表示哀悼.以下为CSS代码.直接在*.css文件最前面加入. <!-- 置为灰色 --> <style type ...