1. 程式人生 > 其它 >NFS共享儲存與rsync實時同步

NFS共享儲存與rsync實時同步

NFS共享儲存與rsync實時同步

0.需求

1.web01和web02可以上傳圖片

2.nfs使用者資料每天凌晨1點做備份

3.校驗資料的完整性

4.nfs使用者資料實時同步到backup的/data/目錄下,做nfs的備機

1.環境準備

主機名 WanIP LanIP 角色 部署服務
web01 10.0.0.7 172.16.1.7 nfs客戶端 httpd,php,nfs
web02 10.0.0.8 172.16.1.8 nfs客戶端 httpd,php,nfs
nfs 10.0.0.31 172.16.1.31 nfs服務端,rsync客戶端 nfs,rsync,inotify
10.0.0.41 172.16.1.41 rsync服務端,nfs服務端(備機) nfs,rsync

部署web網站

1.安裝apache,php:yum install -y httpd php
2.下載交作業網站的壓縮包
	[root@web02 /var/www/html]# ll
    total 28
    -rw-r--r--. 1 root root 27020 May 18 11:54 kaoshi_modify.zip
3.解壓該壓縮包:
	unzip kaoshi_modify.zip
4.修改配置檔案將使用者修改成www:
5.建立使用者
	1.建立www使用者:groupadd -g 666 www
 		  		 useradd -u 666 -g 666 www -s /sbin/nologin -M
	2.檢視使用者:
		[root@web02 /var/www/html]# id www
		uid=666(www) gid=666(www) groups=666(www)
	3.修改站點目錄的屬主與屬組: chown -R www:www /var/www/html
		[root@web02 /var/www/html]# ll -d
		drwxr-xr-x. 2 www www 102 May 21 14:59 .
6.啟動服務並加入開機自啟:
	systemctl start httpd
	systemctl enable httpd
7.檢查程序和埠
8.開啟瀏覽器訪問網站
9.上傳檔案測試是否成功

部署NFS服務—服務端

1.安裝nfs服務:yum install -y nfs-utils
2.修改配置檔案:[root@nfs ~]# vim /etc/exports
# 共享目錄 允許通過的網段(引數)
/data    172.16.1.0/24(rw,sync,anonuid=666,anongid=666,all_squash)
3.根據配置檔案建立目錄
	mkdir /data
4.建立www使用者
	groupadd -g 666 www
	useradd -u 666 -g 666 www -s /sbin/nologin -M
5.修改共享目錄屬主
	[root@backup ~]# ll /data -d
	drwxr-xr-x. 2 www www 6 May 21 15:50 /data
6.開啟nfs服務並加入開機自啟:
	[root@backup ~]# systemctl start nfs
	[root@backup ~]# systemctl enable nfs
7.檢查程序
8.檢視配置檔案是否生效
[root@nfs ~]# cat /var/lib/nfs/etab 
/data	172.16.1.0/24(rw,sync,wdelay,hide,nocrossmnt,secure,root_squash,all_squash,no_subtree_check,secure_locks,acl,no_pnfs,anonuid=666,anongid=666,sec=sys,rw,secure,root_squash,all_squash)

NFS客戶端

1.安裝nfs服務:yum install -y nfs—utils
2.檢視掛載點:
    [root@web02 ~]# showmount -e 172.16.1.31
    Export list for 172.16.1.31:
    /data 172.16.1.0/24
3.掛載目錄
	mount -t nfs 172.16.1.31:/data /var/www/html/user_data/
4.檢視是否掛載成功
5.上傳檔案檢視是否能夠收到

使用sersync實現同步

1.部署rsync——服務端
	0.安裝rsync:yuminsatll -y rsync 
	1.修改rsync的配置檔案:
	[root@backup ~]# vim /etc/rsyncd.conf 
        uid = www
        gid = www
        port = 873
        fake super = yes
        use chroot = no
        max connections = 200
        timeout = 600
        ignore errors
        read only = false
        list = false
        auth users = rsync_backup
        secrets file = /etc/rsync.passwd
        log file = /var/log/rsyncd.log
        #####################################
        [backup]
        comment = welcome to oldboyedu backup!
        path = /backup
        [sync_data]
        comment = sync_data
        path = /data
       2.根據配置檔案建立使用者
       	groupadd -g 666 www
	useradd -u 666 -g 666 www -s /sbin/nologin -M
       3.建立密碼檔案
	   echo 'rsync_backup:123'>/etc/rsync.passwd
       4.修改密碼檔案的許可權為600
	   [root@backup ~]# chmod 600 /etc/rsync.passwd 
	   [root@backup ~]# ll /etc/rsync.passwd 
	   -rw-------. 1 root root 17 May 21 16:27 /etc/rsync.passwd
       5.建立同步目錄
	   mkdir /data
       6.修改目錄的屬主
	   chown -R www:www /data
	   [root@backup ~]# ll /data -d
	   drwxr-xr-x. 2 www www 6 May 21 15:50 /data
       7.啟動rsync服務並加入開機自啟:
	  [root@backup ~]# systemctl start rsyncd
	  [root@backup ~]# systemctl enable rsyncd
      8.檢查程序和埠

rsync客戶端

	1.先安裝rsync和inotify:yum install -y rsync inotify-tools
	2.建立rsync密碼檔案:
		[root@nfs ~]# echo '123'>/etc/rsync.passwd
		[root@nfs ~]# cat /etc/rsync.passwd 
		123
	3.修改密碼檔案許可權為600
		chmod 600 /etc/rsync.passwd
	4.推資料測試rsync是否配置成功
2.安裝sersync的二進位制包:
	1.建立放置安裝包的目錄
	   mkdir /application
	2.獲取安裝包:
	   wget http://test.driverzeng.com/other/sersync2.5.4_64bit_binary_stable_final.tar.gz
3.解壓安裝包
    [root@nfs /application]# tar xf sersync2.5.4_64bit_binary_stable_final.tar.gz 
    [root@nfs /application]# ll
    total 712
    drwxr-xr-x. 2 root root     41 Oct 26  2011 GNU-Linux-x86
4.修改sersync配置檔案
	vim /application/GNU-Linux-x86/confxml.xml
5.啟動服務
	[root@nfs /application/GNU-Linux-x86]# /application/GNU-Linux-x86/sersync2 -rdo /application/GNU-Linux-x86/confxml.xml
6.在/data目錄下建立一個檔案檢視是否同步

每日備份——服務端

1.客戶端提前準備存放的備份的目錄,目錄規則如下: /client_backup

2.客戶端在本地打包備份(系統配置檔案、應用配置等)拷貝至 /client_backup 包名: nfs_172.16.1.31_2022-05-

16.tar.gz

3.客戶端最後將備份的資料進行推送至備份伺服器

4.客戶端每天凌晨1點定時執行該指令碼

5.客戶端伺服器本地保留最近7天的資料, 避免浪費磁碟空間

服務端需求

1.服務端部署rsync,用於接收客戶端推送過來的備份資料

2.服務端需要每天校驗客戶端推送過來的資料是否完整

3.服務端需要每天校驗的結果通知給管理員

4.服務端僅保留6個月的備份資料,其餘的全部刪除

1.建立備份目錄
 	mkdir /backup
2.修改目錄的屬主
 	chown -R www:www /backup
 	[root@backup ~]# ll /backup/ -d
	drwxr-xr-x. 2 www www 6 May 21 17:41 /backup/

rsync客戶端

1.測試能否傳送檔案
2.編寫指令碼實現備份
    [root@nfs ~]# vim backup.sh
    bak_dir="/client_backup"
    host_name=`hostname`
    ip=`/sbin/ifconfig eth1|awk 'NR==2{print $2}'`
    bak_time=`date +%F`
    mkdir -p $bak_dir
    tar -zcPf $bak_dir/${host_name}_${ip}_${bak_time}.tar.gz /data
    cd $bak_dir && \
    md5sum *${bak_time}.tar.gz > ${host_name}_${ip}_${bak_time}.md5
    rsync -avz $bak_dir/ [email protected]::backup --password-file=/etc/rsync.passwd
    find $bak_dir -type f ! -mtime -7|xargs rm -f
3.測試指令碼並校驗檔案是否丟失
4.編寫定時任務
#Usage:date_backup By:jl Date:2022/5/21
00 01 * * * /usr/bin/sh /root/backup.sh &> /dev/null

rsync服務端編寫

1.安裝發郵件工具:yum install -y mailx
2.修改配置檔案:vim /etc/mail.rc
	set from=傳送郵件的郵箱
    set smtp=smtps://smtp.qq.com:465
    set smtp-auth-user=傳送郵件的郵箱
    set smtp-auth-password=授權碼
    set smtp-auth=login
    set ssl-verify=ignore
    set nss-config-dir=/etc/pki/nssdb/
3.編寫指令碼 vim md5.sh
	bak_dir="/backup"
    host_name=`hostname`
    bak_time=`date +%F`
    cd $bak_dir && \
    md5sum -c *${bak_time}.md5 | mail -s '校驗檔案' qq郵箱
    find /backup/ -type f ! -mtime -180 |xargs rm -f
4.測試指令碼 :sh md5.sh
5.編寫定時任務
[root@backup ~]# crontab -l
# Usage:date_backup By:jl Date:2022/5/21
01 01 * * * /usr/bin/sh /root/mds.sh &> /dev/null