1. 程式人生 > >Linux rsync數據定時增量備份

Linux rsync數據定時增量備份

connect server read 通過 用戶名 etc 安裝 文件 lob

一、安裝rsync服務端

1.查看是否安裝rsync

ps -ef | grep rsync
系統一般默認已安裝,安裝方法:yum -y install rsync(沒有親自驗證)。

2.添加配置文件

rsync沒有默認配置文件,需要手動創建/etc/rsyncd.conf

服務端配置文件/etc/rsyncd.conf 內容如下:

#global settings 
pid file=/var/rsync/rsync.pid
port=873
lock file=/var/rsync/lock.log
log file=/var/rsync/rsync.log

[mysql] 
path=/home/mysql_data_back/
use chroot=no 
max connections=10
read only=yes
write only=no
list=no
uid=root
gid=root
auth users=rsyncuser
secrets file=/etc/rsync_server.pas
strict modes=yes
hosts allow=27.223.26.74,192.168.1.2
hosts deny=*
ignore errors=yes 
timeout=120 #秒

參數說明:
[mysql] :模塊名,自己定義,可以在下方添加其它模塊。須與客戶端執行命令中的模塊名一致。
path:要備份的服務端文件夾路徑。
hosts allow:允許的客戶端連接IP。
secrets file:服務端密碼文件,內容格式為,用戶名:密碼。
auth users:有權限的用戶名,與密碼文件中用戶名一致。

3.創建密碼文件

在/etc中創建文件rsync_server.pas,加入用戶名與密碼,內容格式為:用戶名:密碼。
vi /etc/rsync_server.pas
例如,本例中rsync_server.pas文件內容為rsyncuser:123456

然後設置密碼文件權限為600

chmod 600 /etc/rsync_server.pas
註意密碼文件只有設置為600權限才可以使用,客戶端的密碼文件也必須為600。

4.啟動rsync

/usr/bin/rsync --daemon --config=/etc/rsyncd.conf
附加:停止rsync

ps -ef | grep rsync
kill -9 進程號
rm -rf /var/rsync/rsync.pid

二、安裝rsync客戶端

1.查看是否安裝rsync,系統一般默認已安裝,安裝方法:yum -y install rsync(同服務端)。
2.在/etc下創建密碼文件rsync_client.pas,註意內容只有密碼,且與服務端密碼文件中的密碼相同。

3.更改密碼文件權限為600。

三、添加定時任務

在客戶端中添加定時任務,每天淩晨執行命令從服務器端拉取數據,進行備份。
直接編輯/etc/crontab文件,添加一條定時任務即可,例如每天01:23以root身份執行下方的rsync命令,將遠程服務器27.223.26.74中的mysql模塊對應的文件夾(服務端/etc/rsyncd.conf文件中的[mysql]模塊對應的文件夾路徑 )中的內容增量備份到當前服務器的/home/oa_daba_backup目錄:

23 1 * * * root rsync -aqzrtopg --delete rsync://[email protected]/mysql /home/oa_daba_backup --password-file=/etc/rsync_client.pas

命令中的rsyncuser為服務端密碼文件中配置的用戶名;mysql為服務端/etc/rsyncd.conf文件中的[mysql]模塊名,rsync會通過模塊名找到對應的備份文件路徑;/home/oa_daba_backup當前服務器文件夾路徑,遠程服務器需要備份的文件夾裏的內容會增量備份到這裏,所以需要提前建好該目錄;/etc/rsync_client.pas為當前服務器的密碼文件。
當直接執行上方備份命令時,可以加入-v --progress參數, 即顯示具體備份過程信息,定時任務中則不需要。

此外,使用crontab -e命令也可以直接配置定時任務,但與vi /etc/crontab不同,不同點如下:
1./etc/crontab中的為系統任務,只有root可以設定,而crontab -e設置的定時任務為用戶任務,設定完成後會將任務自動寫入/var/spool/cron/usename文件。
2./etc/crontab中的任務需要指定用戶名,crontab -e不需要。

二者更多的不同請參考下面網址:
https://www.cnblogs.com/xd502djj/p/4292781.html

附:任務策略:
每天零點執行備份命令
00 00 * * * shell命令

每天零點和12點執行備份命令
00 00,12 * * * shell命令
00 00,12 * * * shell命令

Linux rsync數據定時增量備份