搭建WEB、NFS共享、sersync實時同步以及全網定時備份服務流程

本次實驗的主要目的:
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 ‘^[ #]+|^$’ /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 ‘^[ #]+|^$’ /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 //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 httpd
 
 
 
3)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:/data
 
4)(需要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/html
 
5)(需要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=$(hostname)
IPdrs=$(awk -F ‘=’ ‘/IPADDR/{print $2}’ /etc/sysconfig/network-scripts/ifcfg-eth1)
Time=$(date +%F)
Dir=/backup/${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 ${Dir}/config.tar.gz &>${Dir}/config.md5sum
###3.推送至備份伺服器
###免密參數:RSYNC_PASSWORD=123456
rsync -avz ${Dir} [email protected]::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.sh
 
 
 
 
 
 
2.nfs伺服器
1)安裝nfs軟體,rsync軟體
[root@nfs ~]# yum install -y rpcbind nfs-utils rsync
 
 
2)創建目錄,用戶(組),修改許可權等環境
[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 -R
 
3)修改nfs配置文件,重啟rpcbind,nfs-utils,並加入開機自啟。(對web服務提供nfs服務)
[root@nfs ~]# echo “/data 172.16.1.0/24(rw,sync,all_squash,anonuid=666,anongid=666)” >>/etc/exports
[root@nfs ~]# systemctl enable rpcbind nfs
[root@nfs ~]# systemctl restart nfs
 
web伺服器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 /data
 
4)下載安裝sersync軟體,修改sersync配置文件,創建對應文件及許可權。
[root@nfs ~]# wget //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
12 <inotify> <!–以下觸發動作,建議全部為true–>
13 <delete start=”true”/>
14 <createFolder start=”true”/>
15 <createFile start=”true”/>
16 <closeWrite start=”true”/>
17 <moveFrom start=”true”/>
18 <moveTo start=”true”/>
19 <attrib start=”true”/>
20 <modify start=”true”/>
21 </inotify>
22
23 <sersync>
24 <localpath watch=”/data”> <!–需要檢查的目錄–>
25 <remote ip=”172.16.1.41″ name=”data”/> <!–rsync服務端的ip,模組名–>
28 </localpath>
29 <rsync>
30 <commonParams params=”-artuz”/>
31 <auth start=”true” users=”sersync_nfs” passwordfile=”/sersync/sersync/sersync_nfs.passwd”/> <!–認證開啟,認證的虛擬用戶和密碼文件位置->
 
[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.passwd
 
 
5)(需要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 ./ [email protected]::data –password-file=/sersync/sersync/sersync_nfs.passwd >/dev/null 2>&1
###檢查是否有問題將「>/dev/null 2>&1」去掉,執行 cd /data && rsync -artuz -R –delete ./ [email protected]::data –password-file=/sersync/sersync/sersync_nfs.passwd >/dev/null 2>&1
 
6)(需要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=$(hostname)
IPdrs=$(awk -F ‘=’ ‘/IPADDR/{print $2}’ /etc/sysconfig/network-scripts/ifcfg-eth1)
Time=$(date +%F)
Dir=/backup/${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 ${Dir}/config.tar.gz &>${Dir}/config.md5sum
###3.推送至備份伺服器
###免密參數:RSYNC_PASSWORD=123456
rsync -avz ${Dir} [email protected]::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.sh
 
 
 
 
 
 
 
 
 
3.backup伺服器
1)安裝nfs軟體,rsync軟體
[root@backup ~]# yum install -y rsync nfs-utils rpcbind
 
2)創建目錄,用戶(組),修改許可權等環境
[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 /backup
 
3)修改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 rsyncd
 
 
4)修改nfs配置文件,重啟rpcbind,nfs-utils,並加入開機自啟。 (對web服務提供nfs服務備用)
[root@nfs ~]# echo “/data 172.16.1.0/24(rw,sync,all_squash,anonuid=666,anongid=666)” >>/etc/exports
[root@nfs ~]# systemctl enable rpcbind nfs
[root@nfs ~]# systemctl restart nfs