Linux-Rsync项目实战(详细) 备份全网服务器数据生产架构方案
要求如下:
每天晚上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/ rsync_backup@backup.team.cn::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郵箱格式為: root@2235590965.qq.com
測試成功:
3、 最后在備份服務器上實現自動化運維:
(1) 編寫自動化腳本:
(2)配置周期作業:
crontab -e
總結此次試驗:
遇到的問題:date +%F%w -d '-1day' 命名文件出現了無法正確獲取時間
解決方法:在多次測試后終于發現需要加$符號來讀取這段函數獲取的時間。
如果rsync的配置文件不會做,請看我上一篇的博客,有錯的地方還請點評指點,在此感謝!
轉載于:https://blog.51cto.com/13735335/2136205
總結
以上是生活随笔為你收集整理的Linux-Rsync项目实战(详细) 备份全网服务器数据生产架构方案的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: sqlmap常用操作命令
- 下一篇: 吴恩达《机器学习》课程总结(16)推荐系