1. 程式人生 > >工具篇:rsync

工具篇:rsync

同步檔案,相當於cp,可以用在一個機器中或是不同機器間。

接收方receiver

不同機器間同步時,接收方相當於伺服器,配置/etc/rsyncd.conf檔案,更新配置檔案不需要重啟程序。

配置示例:允許接收來自10.1.1.*、10.1.2.3和10.1.3.3的機器同步過來的檔案,存放在/path/to/store/file中。

[example]
path = /path/to/store/file
hosts allow=10.1.1.1/255.255.255.0 10.1.2.3 10.1.3.3
read only = no

啟動守護程序

/usr/bin/rsync --daemon --no-detach

當接收到同名檔案時,前一次收到的檔案會按照發送時指定到字尾重新命名,當前收到到檔名稱不變。當再次收到同名檔案後,上上次收到的檔案被刪除,上次收到的檔案加字尾重新命名,當前收到的檔名稱不變。以後同上。

傳送方

rsync -avz --suffix=.old --backup receiver_ip::example

傳送/data1/path目錄中,上一個小時的日誌,日誌格式business.log.2018-11-16-17。

接收方檔名:transmitter_ip.business.log.2018-11-16-17

遇到同名檔案時,前一檔案加字尾.old

pre_hour=`date -d '-1 hours' '+%Y-%m-%d-%H'`
ip=`/usr/sbin/ifconfig eth0|grep 'inet'|grep '10.'|awk '{print $2}'`
cd /data1/path
find ./ -name "business.log.$pre_hour" |xargs -I {} rsync -avz --suffix=.old --backup {} 10.3.1.1::example/$ip.business.log.$pre_hour