1. 程式人生 > 其它 >02下 Rsync備份案例

02下 Rsync備份案例

Rsync備份案例:

客戶端需求:

1.客戶端提前準備存放的備份的目錄,目錄規則如下:/backup/nfs_172.16.1.31_2018-09-02
2.客戶端在本地打包備份(將etc目錄中所有的普通檔案打包)拷貝至/backup/nfs_172.16.1.31_2018-09-02
3.客戶端最後將備份的資料進行推送至備份伺服器
4.客戶端每天凌晨1點定時執行該指令碼
5.客戶端伺服器本地保留最近7天的資料, 避免浪費磁碟空間

服務端需求:

1.服務端部署rsync,用於接收客戶端推送過來的備份資料
2.服務端需要每天校驗客戶端推送過來的資料是否完整?md5sum
3.服務端需要每天校驗的結果通知給管理員
4.服務端僅保留6個月的備份資料,其餘的全部刪除

1 準備伺服器

主機ip身份
rsync 192.168.15.41 服務端
nfs 192.168.15.31 客戶端

2 客戶端

1.客戶端提前準備存放的備份的目錄,

目錄規則如下:/backup/nfs_172.16.1.31_2018-09-02

mkdir /backup
#反引號`date +%F`  
mkdir /backup/nfs_172.16.1.31_`date +%F`  

2.客戶端在本地打包備份(將etc目錄中所有的普通檔案打包)拷貝至/backup/nfs_172.16.1.31_2018-09-02

tar -czPf /backup/nfs_172.16.1.31_`date +%F`/etc.tar.gz $(find /etc/ -type f)
cd /backup/nfs_172.16.1.31_`date +%F`
md5sum etc.tar.gz > md5sum.txt

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

rsync -avzP /backup/ [email protected]::backup --password-file=/etc/rsync.passwd

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

find /backup/ -ctime +7 -name "nfs*" -exec rm -rf {} \;

5 編寫指令碼

vi /root/rsync.sh

寫入下面內容:

mkdir /backup
  
mkdir /backup/nfs_172.16.1.31_`date +%F`  

tar -czPf /backup/nfs_172.16.1.31_`date +%F`/etc.tar.gz $(find /etc/ -type f)
cd /backup/nfs_172.16.1.31_`date +%F`
md5sum etc.tar.gz > md5sum.txt
rsync -avzP /backup/ [email protected]::backup --password-file=/etc/rsync.passwd
find /backup/ -ctime +7 -name "nfs*" -exec rm -rf {} \;

新增許可權:

chmod +x rsync.sh

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

0 1 * * * /root/rsync.sh

3 服務端

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

systemctl start rsyncd

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

cd /backup/nfs_172.16.1.31_`date +%F`/
md5sum -c md5sum.txt

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

if [ $? -eq 0 ];then 
	echo "驗證成功" | mail -s "驗結果" 163郵箱
else
	echo "驗證失敗" | mail -s "驗證結果" [email protected]
fi

使用163郵箱

#1.服務端配置郵件功能
[root@rsync~]# yum install mailx -y
[root@rsync~]# vim /etc/mail.rc 
set from=寫自己的163郵箱
set smtp=smtps://smtp.163.com:465
set smtp-auth-user=寫自己的163郵箱
set smtp-auth-password=JMEHJRULSYTSRLJH   #授權密碼管理的密碼
set smtp-auth=login
set ssl-verify=ignore
set nss-config-dir=/etc/pki/nssdb/
 
#2.測試傳送郵件
[root@rsync ~]# echo "驗證成功" | mail -s "驗證結果" 163郵箱

看起來已經成功了,但是傳送完郵件還有報錯:證書不被信任,且命令列就此卡住,需要按鍵才能出現命令提示符

自行百度解決。。。

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

find /backup/ -ctime +180 -name "nfs*" -exec rm -rf {} \;

5 編寫指令碼

vi /root/rsync-server.sh

cd /backup/nfs_172.16.1.31_`date +%F`/
md5sum -c md5sum.txt
if [ $? -eq 0 ];then 
        echo "驗證成功" | mail -s "驗證結果"   163郵箱
else
	echo "驗證失敗" | mail -s "驗證結果"  163郵箱
fi

增加許可權

chmod +x /root/rsync-server.sh

6 測試

/root/rsync-server.sh 

知識儲備:

md5sum重要的選項: