1. 程式人生 > >Linux-Rsync項目實戰(詳細) 備份全網服務器數據生產架構方案

Linux-Rsync項目實戰(詳細) 備份全網服務器數據生產架構方案

一次 執行 fss pos 數據 用戶 star time 過濾

要求如下:
每天晚上0點 在NFS服務器A(rsync客戶端)上打包備份網站程序目錄(/var/www/html)
通過rsync命令推送到服務器B上備份保存
具體要求:
1.NFS服務器 和 備份服務器 他們的備份目錄都是backup
2.NFS服務器站點假定為/var/www/html
3.NFS服務器本地保留7天的備份
4.備份服務器上檢查備份結果是否正常 把每天的結果發送給管理員(並不需要郵箱軟件) sendmail
5.備份服務器上每周六的數據都保留 其他的僅保留180天
1、首先部署NFS,將/var/www/html 目錄共享給web管理員(webadmin)

技術分享圖片
技術分享圖片
掛載成功:(NFS部署成功)
技術分享圖片

2、在備份服務器和NFS服務器上創建備份目錄

技術分享圖片
技術分享圖片

3、NFSserver的/var/www/html打包壓縮同步到/backup目錄,每次備份的打包備份的文件只保留七天:
tar -zchf /backup/html.$(date +%F%w -d ‘-1day‘).tar.gz /var/www/html/
技術分享圖片
註釋:tar h參數是將符號鏈接文件視作普通文件或目錄,從而打包的是源文件,%F 完整日期格式 %w 一星期中的第幾日(0-6),0 代表周一 ,$讀取具體的天數作為備份文件名,這樣做的目的是為了不重名,-d ‘-1 day’ 如果是今天備份的今天也算一天所以要去掉
find /backup -name “.tar.gz” –mtime +7 -type f |xargs rm –f

註釋:–mtime 參數:最後一次修改發生在n天以內,距離當前時間為n24小時以內
查找/backup 目錄下搜後綴為.tar.gz的創建時間達到7天的文件,將此文件刪除,xargs命令是給其他命令傳遞參數的一個過濾器,換行和空白將被空格取代。

4、在將備份目錄推送之前,加指紋信息,方便服務端的驗證,前提是創建指紋的客戶端路徑和服務端路徑相同才可以
為什麽要添加指紋:為了生成日誌讓管理員更直觀的查看備份的結果
[root@node1 backup]# find /backup/ -name ‘.tar.gz‘ |xargs md5sum >/backup/check.txt
[root@node1 backup]# md5sum -c check.txt

技術分享圖片
是不是直觀的看到了 OK

5、將已經備份好壓縮文件推送到rsync備份服務器上,推送完整的數據,到模塊指定的目錄下
rsync -avz /backup/ [email protected]::backup --password-file=/etc/rsync.password
技術分享圖片
備份服務器上查看推送:(推送成功)
技術分享圖片

自動化:在客戶機上測試了命令後,需要編寫一個腳本,實現自動化運維!
腳本如下:
技術分享圖片
配置周期作業:(每晚0點自動執行腳本進行備份)
Crontab –e //編寫周期作業
技術分享圖片

接下來是備份服務器端:
1、 備份服務器上[每周六的數據都保留],其他備份僅保留180天備份

find /backup/ -name ”.tar.gz” !”6.tar.gz” -mtime +180 –type f |xargs rm –rf

註釋:
將所有後綴為不為6.tar.gz(因為前面的備份文件命名規則是%F%w 所以6就表示每個星期六) 並且文件存在天數大於等於180天的備份文件刪除掉。

2、 備份服務器上檢查備份結果是否正常,並將每天的備份結果發給管理員信箱
(1)首先將本地的send-mail配置文件修改為all:
技術分享圖片

(2)重啟郵件服務
systemctl restart postfix

(3)發送郵件給管理員
-s 表示郵件標題
root為接受的用戶 @ 後面可跟ip地址或者域名
如果發給qq郵箱格式為: [email protected]
測試成功:
技術分享圖片

3、 最後在備份服務器上實現自動化運維:
(1) 編寫自動化腳本:
技術分享圖片
技術分享圖片

(2)配置周期作業:
crontab -e
技術分享圖片

總結此次試驗:
遇到的問題:date +%F%w -d ‘-1day‘ 命名文件出現了無法正確獲取時間
解決方法:在多次測試後終於發現需要加$符號來讀取這段函數獲取的時間。
如果rsync的配置文件不會做,請看我上一篇的博客,有錯的地方還請點評指點,在此感謝!

Linux-Rsync項目實戰(詳細) 備份全網服務器數據生產架構方案