1. 程式人生 > >linux學習筆記-rsync+crond定時備份服務

linux學習筆記-rsync+crond定時備份服務

linux;rsync+crond備份

定時備份數據方案

第1章 備份要求

公司裏有一臺Web服務器,裏面的數據很重要,但是如果硬盤壞了,數據就會丟失,現在領導要求你把數據在其他機器上做一個周期性定時備份。要求如下:

每天晚上00點整在Web服務器A上打包備份系統配置文件、網站程序目錄及訪問日誌,並通過rsync命令推送到服務器B上備份保留(備份思路可以是先在本地按日期打包,然後再推送到備份服務器B上)。

具體要求如下:

1)web服務器A和備份服務器B的備份目錄必須都為/backup

2)要備份的系統配置文件包括但不限於:

a. 定時任務的配置文件(/var/spool/cron/root)

b. 開機自啟動的配置文件(/etc/rc.local)

c. 日常腳本的目錄(/service/scripts)

d. 防火墻iptables的配置文件(/etc/sysconfig/iptables)

3)web服務器站點目錄假定為(/var/html/www)

4)web服務器A訪問日誌路徑假定為(/app/logs)

5)web服務器保留打包後的7天的備份數據即可(本地留存不能多於7天,因為太多硬盤會滿)

6)備份服務器B按照備份數據服務器的IP地址命名備份文件夾,周六的數據都保留,其他備份僅保留180天的備份。

7)備份服務器B上檢查備份結果是否正常,並將每天的備份結果發給管理員。

第2章 實現思路

2.1文件打包命令

打包命令:tar -zxvf name.tar.gz $file

舉例:打包文件/etc/hosts/back目錄,打包文件名為test.tar.gz

[root@nfs01 ~]# ls /backup/
[root@nfs01 ~]#
[root@nfs01 /]# cd /&& tar -zcvf /backup/test.tar.gz etc/hosts
etc/hosts
[root@nfs01 /]# ls /backup/
test.tar.gz

2.2按日期打包

獲取當前日期的命令:date+%F

舉例:打包文件/etc/hosts/back目錄,打包文件名按日期區分

[root@nfs01 /]# cd / && tar -zcvf/backup/$(date +%F).tar.gz etc/hosts
etc/hosts
[root@nfs01 /]# ls /backup/
2017-11-04.tar.gz test.tar.gz

2.3周六包特別命名

因為服務器需要保留周六的文件包,所以在打包周六的文件時,需要給文件特殊命名,以便區分。

[root@nfs01 /]# cd / && tar -zcvf/backup/$(date +%F)_week6.tar.gz etc/hosts
etc/hosts
[root@nfs01 /]# ls /backup/
2017-11-04.tar.gz 2017-11-04_week6.tar.gz test.tar.gz

2.4上傳文件到服務器

通過rsync服務將文件上傳到備份服務器的指定的目錄,安裝Rsync服務的步驟參省略。

測試上傳:

[root@nfs01 /]# rsync -avz /backup/$(date+%F).tar.gz rsync_backup@backup::backup --password-file=/etc/rsync.password
sending incremental file list
2017-11-04.tar.gz
 
sent 305 bytes received 27 bytes  664.00bytes/sec
total size is 223 speedup is 0.67

註意:將打包文件放在/backup/本地IP/目錄下,再將整個IP目錄上傳

2.5數據校驗

命令:md5sum

md5sum有數據校驗的功能,具體做法是用md5sum命令對文件生成一個校驗碼,然後將這個校驗碼放在一個任意文件中,再使用md5sum -c參數來檢查是否有變動。具體做法如下:

  • 對文件生成一個校驗文件:

[root@backup backup]# ls
2017-11-04.tar.gz
[root@backup backup]# md5sum2017-11-04.tar.gz 
b29cee519b7991a429c353b11c01d533  2017-11-04.tar.gz
[root@backup backup]# md5sum 2017-11-04.tar.gz> md5sum_check   #<==生成唯一的校驗碼並寫入到文件中
[root@backup backup]# cat md5sum_check
b29cee519b7991a429c353b11c01d533  2017-11-04.tar.gz

linux學習筆記-rsync+crond定時備份服務