本次实验的主要目的:
1.搭建web服务,使用nfs服务共享的/data目录挂载到web站点目录上。
2.nfs服务器与backup服务器使用sersync实时同步/data目录中的文件。
3.backup服务器作为rsync服务端,全网服务器定时备份到backup上,并且给web服务提供备用nfs共享。

服务器主机名及IP划分:
web服务器:hostname:web01 WAN IP:10.0.0.7/24 LAN IP:172.16.1.7/24
nfs服务器:hostname:nfs WAN IP:10.0.0.31/24 LAN IP:172.16.1.31/24
backup服务器:hostname:backup WAN IP:10.0.0.41/24 LAN IP:172.16.1.41/24
注意:本次实验不涉及selinux和firewalld服务,全部主机都已经全部关闭selinux和firewalld服务。

配置流程

1.web服务器
 1)安装web服务软件,nfs软件,rsync软件,创建用户(组),修改权限等环境。
 [root@web01 ~]# yum install -y httpd php php-mbstring php-gd rpcbind nfs-utils rsync
 [root@web01 ~]# groupadd www -g666
 [root@web01 ~]# useradd www -u666 -g666
 [root@web01 ~]# id www
 uid=666(www) gid=666(www) groups=666(www)2)修改httpd配置文件,重启httpd服务,并加入开机自启
 [root@web01 ~]# rpm -qc httpd|grep “httpd.conf”
 /etc/httpd/conf/httpd.conf[root@web01 ~]# grep -Ev ‘1+|^$’ /etc/httpd/conf/httpd.conf
 ServerRoot “/etc/httpd”
 Listen 80
 Include conf.modules.d/*.conf
 User apache
 Group apache
 …[root@web01 ~]# sed -i ‘/^User/c User www’ /etc/httpd/conf/httpd.conf
 [root@web01 ~]# sed -i ‘/^Group/c Group www’ /etc/httpd/conf/httpd.conf
 [root@web01 ~]# grep -Ev ‘2+|^$’ /etc/httpd/conf/httpd.conf
 ServerRoot “/etc/httpd”
 Listen 80
 Include conf.modules.d/*.conf
 User www
 Group www
 …[root@web01 ~]# rpm -ql httpd|grep ‘www/html’
 /var/www/html
 [root@web01 ~]# cd /var/www/html
 [root@web01 html]# wget http://static.kodcloud.com/update/download/kodexplorer4.40.zip
 [root@web01 html]# unzip kodexplorer4.40.zip
 [root@web01 html]# chown -R www.www /var/www/html[root@web01 ~]# systemctl enable httpd
 [root@web01 ~]# systemctl restart httpd3)rpcbind,nfs服务开机自启及重启服务,scp静态资源到挂载点目录中。
 [root@web01 html]# showmount -e 172.16.1.31
 Export list for 172.16.1.31:
 /data 172.16.1.0/24将静态资源scp到nfs服务器
 [root@web01 html]# scp -r ./* 172.16.1.31:/data4)(需要nfs服务器配置好后)挂载nfs共享目录。
 [root@web01 html]# mount -t nfs 172.16.1.31:/data ./
 [root@web01 html]# df
 Filesystem 1K-blocks Used Available Use% Mounted on
 /dev/sda2 50306052 2379928 47926124 5% /
 devtmpfs 487088 0 487088 0% /dev
 …
 172.16.1.31:/data 50306176 2340992 47965184 5% /var/www/html5)(需要backup服务器配置好rsync服务后)添加定时任务使用rsyncd服务备份xxx目录到backup服务器。
 vim /rsync_client.sh
 #!/bin/bash
 export PATH=/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/root/bin
 Host=(awk -F ‘=’ '/IPADDR/{print KaTeX parse error: Expected 'EOF', got '}' at position 2: 2}̲' /etc/sysconfi…(date +%F)
 Dir=/backup/KaTeX parse error: Expected group after '_' at position 7: {Host}_̲{IPdrs}_${Time}
 ###1.准备存储目录
 mkdir ${Dir} -p
 ###2.打包备份
 tar -czvhpf ${Dir}/config.tar.gz /etc/rc.local /etc/fstab /etc/hosts /etc/firewalld &>>/var/log/rsync.log
 md5sum KaTeX parse error: Expected 'EOF', got '&' at position 21: …/config.tar.gz &̲>{Dir}/config.md5sum
 ###3.推送至备份服务器
 ###免密参数:RSYNC_PASSWORD=123456
 rsync -avz ${Dir} rsync_backup@172.16.1.41::backup --password-file=/etc/rsync.pass &>>/var/log/rsync.log
 ###可选密码文件参数–password-file=/etc/rsync.pass
 ###4.保留最近7天的数据
 find /backup/* -type d -mtime +7 |xargs rm -fr &>>/var/log/rsync.log
 ##############################################################[root@web01 html]# chmod +x /rsync_client.sh
 [root@web01 html]# echo “123456” >/etc/rsync.pass
 [root@web01 html]# chmod 400 /etc/rsync.pass添加定时任务
 [root@web01 html]# crontab -e
 00 01 * * * sh /rsync_client.sh2.nfs服务器
 1)安装nfs软件,rsync软件
 [root@nfs ~]# yum install -y rpcbind nfs-utils rsync2)创建目录,用户(组),修改权限等环境
 [root@nfs ~]# groupadd www -g666
 [root@nfs ~]# useradd www -u666 -g666
 [root@nfs ~]# id www
 uid=666(www) gid=666(www) groups=666(www)[root@nfs ~]# mkdir /data
 [root@nfs ~]# chown www.www /data -R3)修改nfs配置文件,重启rpcbind,nfs-utils,并加入开机自启。(对web服务提供nfs服务)
 [root@nfs ~]# echo “/data 172.16.1.0/24(rw,sync,all_squash,annotallow=666,annotallow=666)” >>/etc/exports
 [root@nfs ~]# systemctl enable rpcbind nfs
 [root@nfs ~]# systemctl restart nfsweb服务器scp文件到nfs服务器后需要修改属主和属组
 [root@nfs ~]# ll /data
 total 13676
 drwxr-xr-x 10 root root 115 Apr 17 16:21 app
 -rwxr-xr-x 1 root root 91248 Apr 17 16:21 ChangeLog.md
 drwxr-xr-x 3 root root 74 Apr 17 16:21 config
 …
 [root@nfs ~]# chown -R www.www /data4)下载安装sersync软件,修改sersync配置文件,创建对应文件及权限。
 [root@nfs ~]# wget https://github.com/chiugui/sersync/raw/master/sersync2.5.4_64bit_binary_stable_final.tar.gz
 [root@nfs ~]# tar -xf sersync2.5.4_64bit_binary_stable_final.tar.gz
 [root@nfs ~]# ll
 total 716
 drwxr-xr-x 2 root root 41 Oct 26 2011 GNU-Linux-x86
 -rw-r–r-- 1 root root 727290 Apr 17 16:34 sersync2.5.4_64bit_binary_stable_final.tar.gz
 [root@nfs ~]# mkdir /sersync
 [root@nfs ~]# mv GNU-Linux-x86/ /sersync/sersync
 [root@nfs ~]# cd /sersync/sersync/
 [root@nfs sersync]# ll
 total 1772
 -rwxr-xr-x 1 root root 2214 Oct 26 2011 confxml.xml
 -rwxr-xr-x 1 root root 1810128 Oct 26 2011 sersync2
 [root@nfs sersync]# vim confxml.xml  
 31 <!–认证开启,认证的虚拟用户和密码文件位置->[root@nfs sersync]# echo “123456” >/sersync/sersync/sersync_nfs.passwd
 [root@nfs sersync]# cat /sersync/sersync/sersync_nfs.passwd
 123456
 [root@nfs sersync]# chmod 400 /sersync/sersync/sersync_nfs.passwd5)(需要backup服务器配置好rsync服务后)开启实时同步到backup服务器。
 [root@nfs sersync]# ./sersync2 -h
 参数-d:启用守护进程模式
 参数-r:在监控前,将监控目录与远程主机用rsync命令推送一遍
 参数-o:指定配置文件,默认使用confxml.xml文件
 [root@nfs sersync]# ./sersync2 -dro confxml.xml
 working please wait…
 execute command: cd /data && rsync -artuz -R --delete ./ sersync_nfs@172.16.1.41::data --password-file=/sersync/sersync/sersync_nfs.passwd >/dev/null 2>&1
 ###检查是否有问题将“>/dev/null 2>&1”去掉,执行 cd /data && rsync -artuz -R --delete ./ sersync_nfs@172.16.1.41::data --password-file=/sersync/sersync/sersync_nfs.passwd >/dev/null 2>&16)(需要backup服务器配置好rsync服务后)添加定时任务使用rsyncd服务备份xxx目录到backup服务器。
 vim /rsync_client.sh
 #!/bin/bash
 export PATH=/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/root/bin
 Host=(awk -F ‘=’ '/IPADDR/{print KaTeX parse error: Expected 'EOF', got '}' at position 2: 2}̲' /etc/sysconfi…(date +%F)
 Dir=/backup/KaTeX parse error: Expected group after '_' at position 7: {Host}_̲{IPdrs}_${Time}
 ###1.准备存储目录
 mkdir ${Dir} -p
 ###2.打包备份
 tar -czvhpf ${Dir}/config.tar.gz /etc/rc.local /etc/fstab /etc/hosts /etc/firewalld &>>/var/log/rsync.log
 md5sum KaTeX parse error: Expected 'EOF', got '&' at position 21: …/config.tar.gz &̲>{Dir}/config.md5sum
 ###3.推送至备份服务器
 ###免密参数:RSYNC_PASSWORD=123456
 rsync -avz ${Dir} rsync_backup@172.16.1.41::backup --password-file=/etc/rsync.pass &>>/var/log/rsync.log
 ###可选密码文件参数–password-file=/etc/rsync.pass
 ###4.保留最近7天的数据
 find /backup/* -type d -mtime +7 |xargs rm -fr &>>/var/log/rsync.log
 ##############################################################[root@nfs sersync]# chmod +x /rsync_client.sh
 [root@nfs sersync]# echo “123456” >/etc/rsync.pass
 [root@nfs sersync]# chmod 400 /etc/rsync.pass添加定时任务
 [root@nfs sersync]# crontab -e
 10 01 * * * sh /rsync_client.sh3.backup服务器
 1)安装nfs软件,rsync软件
 [root@backup ~]# yum install -y rsync nfs-utils rpcbind2)创建目录,用户(组),修改权限等环境
 [root@backup ~]# groupadd www -g666
 [root@backup ~]# useradd www -u666 -g666
 [root@backup ~]# id www
 uid=666(www) gid=666(www) groups=666(www)
 [root@backup ~]# mkdir /backup
 [root@backup ~]# mkdir /data
 [root@backup ~]# chown -R www.www /data /backup3)修改rsync配置文件,创建对应文件及权限。重启rsyncd并加入开机自启。(对nfs服务器提供实时和定时备份,对web服务器提供定时备份服务。)
 [root@backup ~]# vim /etc/rsyncd.conf
 1 uid = www
 2 gid = www
 3 port = 873
 4 fake super = yes
 5 use chroot = no
 6 max connections = 200
 7 timeout = 600
 8 ignore errors
 9 read only = false
 10 list = false
 11 [backup]
 12 auth users = rsync_backup
 13 secrets file = /etc/rsync.passwd
 14 comment = welcome backup
 15 path = /backup
 16 [data]
 17 auth users = sersync_nfs
 18 secrets file = /etc/rsync.passwd
 19 comment = welcome data
 20 path = /data
 [root@backup ~]# echo -e “rsync_backup:123456\nsersync_nfs:123456” >/etc/rsync.passwd
 [root@backup ~]# chmod 400 /etc/rsync.passwd
 [root@backup ~]# cat /etc/rsync.passwd
 rsync_backup:123456
 sersync_nfs:123456
 [root@backup ~]# systemctl enable rsyncd
 [root@backup ~]# systemctl restart rsyncd4)修改nfs配置文件,重启rpcbind,nfs-utils,并加入开机自启。 (对web服务提供nfs服务备用)
 [root@nfs ~]# echo “/data 172.16.1.0/24(rw,sync,all_squash,annotallow=666,annotallow=666)” >>/etc/exports
 [root@nfs ~]# systemctl enable rpcbind nfs
 [root@nfs ~]# systemctl restart nfs