Linux下同步工具inotify+rsync使用詳解

1. rsync

1.1 什么是rsync

rsync是一個(gè)遠(yuǎn)程數(shù)據(jù)同步工具省容,可通過(guò)LAN/WAN快速同步多臺(tái)主機(jī)間的文件。它使用所謂的“Rsync演算法”來(lái)使本地和遠(yuǎn)程兩個(gè)主機(jī)之間的文件達(dá)到同步阿宅,這個(gè)算法只傳送兩個(gè)文件的不同部分笼蛛,而不是每次都整份傳送,因此速度相當(dāng)快往湿。所以通常可以作為備份工具來(lái)使用领追。

運(yùn)行Rsync server的機(jī)器也叫backup server绒窑,一個(gè)Rsync server可同時(shí)備份多個(gè)client的數(shù)據(jù);也可以多個(gè)Rsync server備份一個(gè)client的數(shù)據(jù)蟀俊。Rsync可以搭配ssh甚至使用daemon模式傀蓉。Rsync server會(huì)打開(kāi)一個(gè)873的服務(wù)通道(port),等待對(duì)方rsync連接误甚。連接時(shí)窑邦,Rsync server會(huì)檢查口令是否相符壕探,若通過(guò)口令查核,則可以開(kāi)始進(jìn)行文件傳輸李请。第一次連通完成時(shí)导盅,會(huì)把整份文件傳輸一次,下一次就只傳送二個(gè)文件之間不同的部份白翻。

基本特點(diǎn):

  1. 可以鏡像保存整個(gè)目錄樹(shù)和文件系統(tǒng)滤馍;
  2. 可以很容易做到保持原來(lái)文件的權(quán)限、時(shí)間槐瑞、軟硬鏈接等阁苞;
  3. 無(wú)須特殊權(quán)限即可安裝灭袁;
  4. 優(yōu)化的流程茸歧,文件傳輸效率高软瞎;
  5. 可以使用rcp、ssh等方式來(lái)傳輸文件涤浇,當(dāng)然也可以通過(guò)直接的socket連接只锭;
  6. 支持匿名傳輸院尔。
**命令語(yǔ)法:**
rsync的命令格式可以為以下六種:
 rsync [OPTION]… SRC DEST
 rsync [OPTION]… SRC [USER@]HOST:DEST
 rsync [OPTION]… [USER@]HOST:SRC DEST
 rsync [OPTION]… [USER@]HOST::SRC DEST
 rsync [OPTION]… SRC [USER@]HOST::DEST
 rsync [OPTION]… rsync://[USER@]HOST[:PORT]/SRC [DEST]

對(duì)應(yīng)于以上六種命令格式,我們可以總結(jié)rsync有2種不同的工作模式:

  • shell模式:使用遠(yuǎn)程shell程序(如ssh或rsh)進(jìn)行連接纵顾。當(dāng)源路徑或目的路徑的主機(jī)名后面包含一個(gè)冒號(hào)分隔符時(shí)使用這種模式栋盹,rsync安裝完成后就可以直接使用了例获,無(wú)所謂啟動(dòng)榨汤。(目前沒(méi)有嘗試過(guò)這個(gè)方法)
  • daemon模式:使用TCP直接連接rsync daemon。當(dāng)源路徑或目的路徑的主機(jī)名后面包含兩個(gè)冒號(hào),或使用rsync://URL時(shí)使用這種模式啼器,無(wú)需遠(yuǎn)程shell端壳,但必須在一臺(tái)機(jī)器上啟動(dòng)rsync daemon枪蘑,默認(rèn)端口873岖免,這里可以通過(guò)rsync --daemon使用獨(dú)立進(jìn)程的方式,或者通過(guò)xinetd超級(jí)進(jìn)程來(lái)管理rsync后臺(tái)進(jìn)程照捡。

當(dāng)rsync作為daemon運(yùn)行時(shí)颅湘,它需要一個(gè)用戶(hù)身份。如果你希望啟用chroot栗精,則必須以root的身份來(lái)運(yùn)行daemon闯参,監(jiān)聽(tīng)端口,或設(shè)定文件屬主悲立;如果不啟用chroot鹿寨,也可以不使用root用戶(hù)來(lái)運(yùn)行daemon,但該用戶(hù)必須對(duì)相應(yīng)的模塊擁有讀寫(xiě)數(shù)據(jù)薪夕、日志和lock file的權(quán)限脚草。當(dāng)rsync以daemon模式運(yùn)行時(shí),它還需要一個(gè)配置文件——rsyncd.conf原献。修改這個(gè)配置后不必重啟rsync daemon馏慨,因?yàn)槊恳淮蔚腸lient連接都會(huì)去重新讀取該文件。

我們一般把DEST遠(yuǎn)程服務(wù)器端成為rsync Server熏纯,運(yùn)行rsync命令的一端SRC稱(chēng)為Client。

安裝:
rsync在CentOS6上默認(rèn)已經(jīng)安裝秩贰,如果沒(méi)有則可以使用yum install rsync -y,服務(wù)端和客戶(hù)端是同一個(gè)安裝包觅玻。

# rsync -h

1.2 同步測(cè)試

關(guān)于rsync命令的諸多選項(xiàng)說(shuō)明,見(jiàn)另外一篇文章rsync與inotifywait命令和配置選項(xiàng)說(shuō)明畸悬。

1.2.1 本機(jī)文件夾同步

# rsync -auvrtzopgP --progress  /root/ /tmp/rsync_bak/

會(huì)看到從/root/傳輸文件到/tmp/rsync_bak/的列表和速率披粟,再運(yùn)行一次會(huì)看到sending incremental file list下沒(méi)有復(fù)制的內(nèi)容,可以在/root/下touch某一個(gè)文件再運(yùn)行看到只同步了修改過(guò)的文件胸梆。

上面需要考慮以下問(wèn)題:

  • 刪除/root/下的文件不會(huì)同步刪除/tmp/rsync_bak习瑰,除非加入--delete選項(xiàng)
  • 文件訪問(wèn)時(shí)間等屬性柠横、讀寫(xiě)等權(quán)限、文件內(nèi)容等有任何變動(dòng)搬俊,都會(huì)被認(rèn)為修改
  • 目標(biāo)目錄下如果文件比源目錄還新檀葛,則不會(huì)同步
  • 源路徑的最后是否有斜杠有不同的含義:有斜杠空扎,只是復(fù)制目錄中的文件;沒(méi)有斜杠的話,不但要復(fù)制目錄中的文件甫煞,還要復(fù)制目錄本身

1.3 同步到遠(yuǎn)程服務(wù)器

在服務(wù)器間rsync傳輸文件,需要有一個(gè)是開(kāi)著rsync的服務(wù)楷力,而這一服務(wù)需要兩個(gè)配置文件,說(shuō)明當(dāng)前運(yùn)行的用戶(hù)名和用戶(hù)組,這個(gè)用戶(hù)名和用戶(hù)組在改變文件權(quán)限和相關(guān)內(nèi)容的時(shí)候有用何址,否則有時(shí)候會(huì)出現(xiàn)提示權(quán)限問(wèn)題胁镐。配置文件也說(shuō)明了模塊烁巫、模塊化管理服務(wù)的安全性违崇,每個(gè)模塊的名稱(chēng)都是自己定義的,可以添加用戶(hù)名密碼驗(yàn)證,也可以驗(yàn)證IP棺蛛,設(shè)置目錄是否可寫(xiě)等,不同模塊用于同步不同需求的目錄。

1.3.1 服務(wù)端配置文件

/etc/rsyncd.conf:

#2014-12-11 by Sean
uid=root
gid=root
use chroot=no
max connections=10
timeout=600
strict modes=yes
port=873
pid file=/var/run/rsyncd.pid
lock file=/var/run/rsyncd.lock
log file=/var/log/rsyncd.log

[module_test]
path=/tmp/rsync_bak2
comment=rsync test logs
auth users=sean
uid=sean
gid=sean
secrets file=/etc/rsyncd.secrets
read only=no
list=no
hosts allow=172.29.88.204
hosts deny=0.0.0.0/32

這里配置socket方式傳輸文件,端口873本刽,[module_test]開(kāi)始定義一個(gè)模塊斜友,指定要同步的目錄(接收)path,授權(quán)用戶(hù)洛史,密碼文件忆嗜,允許哪臺(tái)服務(wù)器IP同步(發(fā)送)等。關(guān)于配置文件中選項(xiàng)的詳細(xì)說(shuō)明依然參考rsync與inotifywait命令和配置選項(xiàng)說(shuō)明途样。

經(jīng)測(cè)試律适,上述配置文件每行后面不能使用#來(lái)來(lái)注釋

/etc/rsyncd.secrets:

sean:passw0rd

一行一個(gè)用戶(hù)扣草,用戶(hù)名:密碼。請(qǐng)注意這里的用戶(hù)名和密碼與操作系統(tǒng)的用戶(hù)名密碼無(wú)關(guān)粗井,可以隨意指定懒构,與/etc/rsyncd.conf中的auth users對(duì)應(yīng)胆剧。

修改權(quán)限:chmod 600 /etc/rsyncd.d/rsync_server.pwd赞赖。

1.3.2 服務(wù)器啟動(dòng)rsync后臺(tái)服務(wù)

修改/etc/xinetd.d/rsync文件匿垄,disable 改為 no

# default: off
# description: The rsync server is a good addition to an ftp server, as it \
#   allows crc checksumming etc.
service rsync
{
4disable    = no
4flags      = IPv6
4socket_type     = stream
4wait            = no
4user            = root
4server          = /usr/bin/rsync
4server_args     = --daemon
4log_on_failure  += USERID
}

執(zhí)行service xinetd restart會(huì)一起重啟rsync后臺(tái)進(jìn)程届榄,默認(rèn)使用配置文件/etc/rsyncd.conf埠忘。也可以使用/usr/bin/rsync --daemon --config=/etc/rsyncd.conf运吓。

為了以防rsync寫(xiě)入過(guò)多的無(wú)用日志到/var/log/message(容易塞滿從而錯(cuò)過(guò)重要的信息)拘哨,建議注釋掉/etc/xinetd.conf的success:

# log_on_success  = PID HOST DURATION EXIT

如果使用了防火墻谋梭,要添加允許IP到873端口的規(guī)則。

# iptables -A INPUT -p tcp -m state --state NEW  -m tcp --dport 873 -j ACCEPT
# iptables -L  查看一下防火墻是不是打開(kāi)了 873端口
# netstat -anp|grep 873

建議關(guān)閉selinux倦青,可能會(huì)由于強(qiáng)訪問(wèn)控制導(dǎo)致同步報(bào)錯(cuò)瓮床。

1.3.3 客戶(hù)端測(cè)試同步

單向同步時(shí),客戶(hù)端只需要一個(gè)包含密碼的文件产镐。
/etc/rsync_client.pwd:

passw0rd

chmod 600 /etc/rsync_client.pwd

命令:
將本地/root/目錄同步到遠(yuǎn)程172.29.88.223的/tmp/rsync_bak2目錄(module_test指定):

/usr/bin/rsync -auvrtzopgP --progress --password-file=/etc/rsync_client.pwd /root/ sean@172.29.88.223::module_test

當(dāng)然你也可以將遠(yuǎn)程的/tmp/rsync_bak2目錄同步到本地目錄/root/tmp:

/usr/bin/rsync -auvrtzopgP --progress --password-file=/etc/rsync_client.pwd sean@172.29.88.223::module_test /root/

從上面兩個(gè)命令可以看到隘庄,其實(shí)這里的服務(wù)器與客戶(hù)端的概念是很模糊的,rsync daemon都運(yùn)行在遠(yuǎn)程172.29.88.223上癣亚,第一條命令是本地主動(dòng)推送目錄到遠(yuǎn)程丑掺,遠(yuǎn)程服務(wù)器是用來(lái)備份的;第二條命令是本地主動(dòng)向遠(yuǎn)程索取文件述雾,本地服務(wù)器用來(lái)備份街州,也可以認(rèn)為是本地服務(wù)器恢復(fù)的一個(gè)過(guò)程兼丰。

1.4 rsync不足

與傳統(tǒng)的cp、tar備份方式相比唆缴,rsync具有安全性高鳍征、備份迅速、支持增量備份等優(yōu)點(diǎn)面徽,通過(guò)rsync可以解決對(duì)實(shí)時(shí)性要求不高的數(shù)據(jù)備份需求艳丛,例如定期的備份文件服務(wù)器數(shù)據(jù)到遠(yuǎn)端服務(wù)器,對(duì)本地磁盤(pán)定期做數(shù)據(jù)鏡像等趟紊。

隨著應(yīng)用系統(tǒng)規(guī)模的不斷擴(kuò)大质礼,對(duì)數(shù)據(jù)的安全性和可靠性也提出的更好的要求,rsync在高端業(yè)務(wù)系統(tǒng)中也逐漸暴露出了很多不足织阳,首先,rsync同步數(shù)據(jù)時(shí)砰粹,需要掃描所有文件后進(jìn)行比對(duì)唧躲,進(jìn)行差量傳輸。如果文件數(shù)量達(dá)到了百萬(wàn)甚至千萬(wàn)量級(jí)碱璃,掃描所有文件將是非常耗時(shí)的弄痹。而且正在發(fā)生變化的往往是其中很少的一部分,這是非常低效的方式嵌器。其次肛真,rsync不能實(shí)時(shí)的去監(jiān)測(cè)、同步數(shù)據(jù)爽航,雖然它可以通過(guò)crontab方式進(jìn)行觸發(fā)同步蚓让,但是兩次觸發(fā)動(dòng)作一定會(huì)有時(shí)間差,這樣就導(dǎo)致了服務(wù)端和客戶(hù)端數(shù)據(jù)可能出現(xiàn)不一致讥珍,無(wú)法在應(yīng)用故障時(shí)完全的恢復(fù)數(shù)據(jù)历极。基于以上原因衷佃,rsync+inotify組合出現(xiàn)了趟卸!

2. inotify-tools

2.1 什么是inotify

inotify是一種強(qiáng)大的、細(xì)粒度的氏义、異步的文件系統(tǒng)事件監(jiān)控機(jī)制锄列,Linux內(nèi)核從2.6.13開(kāi)始引入,允許監(jiān)控程序打開(kāi)一個(gè)獨(dú)立文件描述符惯悠,并針對(duì)事件集監(jiān)控一個(gè)或者多個(gè)文件邻邮,例如打開(kāi)、關(guān)閉克婶、移動(dòng)/重命名饶囚、刪除帕翻、創(chuàng)建或者改變屬性。

CentOS6自然已經(jīng)支持:
使用ll /proc/sys/fs/inotify命令萝风,是否有以下三條信息輸出嘀掸,如果沒(méi)有表示不支持。

total 0
-rw-r--r-- 1 root root 0 Dec 11 15:23 max_queued_events
-rw-r--r-- 1 root root 0 Dec 11 15:23 max_user_instances
-rw-r--r-- 1 root root 0 Dec 11 15:23 max_user_watches
  • /proc/sys/fs/inotify/max_queued_evnets表示調(diào)用inotify_init時(shí)分配給inotify instance中可排隊(duì)的event的數(shù)目的最大值规惰,超出這個(gè)值的事件被丟棄睬塌,但會(huì)觸發(fā)IN_Q_OVERFLOW事件。
  • /proc/sys/fs/inotify/max_user_instances表示每一個(gè)real user ID可創(chuàng)建的inotify instatnces的數(shù)量上限歇万。
  • /proc/sys/fs/inotify/max_user_watches表示每個(gè)inotify instatnces可監(jiān)控的最大目錄數(shù)量揩晴。如果監(jiān)控的文件數(shù)目巨大,需要根據(jù)情況贪磺,適當(dāng)增加此值的大小硫兰。

inotify-tools:

inotify-tools是為linux下inotify文件監(jiān)控工具提供的一套C的開(kāi)發(fā)接口庫(kù)函數(shù),同時(shí)還提供了一系列的命令行工具寒锚,這些工具可以用來(lái)監(jiān)控文件系統(tǒng)的事件劫映。 inotify-tools是用c編寫(xiě)的,除了要求內(nèi)核支持inotify外刹前,不依賴(lài)于其他泳赋。inotify-tools提供兩種工具,一是inotifywait喇喉,它是用來(lái)監(jiān)控文件或目錄的變化祖今,二是inotifywatch,它是用來(lái)統(tǒng)計(jì)文件系統(tǒng)訪問(wèn)的次數(shù)拣技。

下載inotify-tools-3.14-1.el6.x86_64.rpm千诬,通過(guò)rpm包安裝:

# rpm -ivh /apps/crm/soft_src/inotify-tools-3.14-1.el6.x86_64.rpm 
warning: /apps/crm/soft_src/inotify-tools-3.14-1.el6.x86_64.rpm: Header V3 DSA/SHA1 Signature, key ID 4026433f: NOKEY
Preparing...                ########################################### [100%]
 1:inotify-tools          ########################################### [100%]
# rpm -qa|grep inotify
inotify-tools-3.14-1.el5.x86_64

2.2 inotifywait使用示例

監(jiān)控/root/tmp目錄文件的變化:

/usr/bin/inotifywait -mrq --timefmt '%Y/%m/%d-%H:%M:%S' --format '%T %w %f' \
 -e modify,delete,create,move,attrib /root/tmp/

上面的命令表示,持續(xù)監(jiān)聽(tīng)/root/tmp目錄及其子目錄的文件變化膏斤,監(jiān)聽(tīng)事件包括文件被修改大渤、刪除、創(chuàng)建掸绞、移動(dòng)泵三、屬性更改,顯示到屏幕衔掸。執(zhí)行完上面的命令后烫幕,在/root/tmp下創(chuàng)建或修改文件都會(huì)有信息輸出:

2014/12/11-15:40:04 /root/tmp/ new.txt
2014/12/11-15:40:22 /root/tmp/ .new.txt.swp
2014/12/11-15:40:22 /root/tmp/ .new.txt.swx
2014/12/11-15:40:22 /root/tmp/ .new.txt.swx
2014/12/11-15:40:22 /root/tmp/ .new.txt.swp
2014/12/11-15:40:22 /root/tmp/ .new.txt.swp
2014/12/11-15:40:23 /root/tmp/ .new.txt.swp
2014/12/11-15:40:31 /root/tmp/ .new.txt.swp
2014/12/11-15:40:32 /root/tmp/ 4913
2014/12/11-15:40:32 /root/tmp/ 4913
2014/12/11-15:40:32 /root/tmp/ 4913
2014/12/11-15:40:32 /root/tmp/ new.txt
2014/12/11-15:40:32 /root/tmp/ new.txt~
2014/12/11-15:40:32 /root/tmp/ new.txt
...

3. rsync組合inotify-tools完成實(shí)時(shí)同步

這一步的核心其實(shí)就是在客戶(hù)端創(chuàng)建一個(gè)腳本rsync.sh,適用inotifywait監(jiān)控本地目錄的變化敞映,觸發(fā)rsync將變化的文件傳輸?shù)竭h(yuǎn)程備份服務(wù)器上较曼。為了更接近實(shí)戰(zhàn),我們要求一部分子目錄不同步振愿,如/root/tmp/log和臨時(shí)文件捷犹。

3.1 創(chuàng)建排除在外不同步的文件列表

排除不需要同步的文件或目錄有兩種做法弛饭,第一種是inotify監(jiān)控整個(gè)目錄,在rsync中加入排除選項(xiàng)萍歉,簡(jiǎn)單侣颂;第二種是inotify排除部分不監(jiān)控的目錄,同時(shí)rsync中也要加入排除選項(xiàng)枪孩,可以減少不必要的網(wǎng)絡(luò)帶寬和CPU消耗憔晒。我們選擇第二種。

3.1.1 inotifywait排除

這個(gè)操作在客戶(hù)端進(jìn)行蔑舞,假設(shè)/tmp/src/mail/2014/以及/tmp/src/mail/2015/cache/目錄下的所有文件不用同步拒担,所以不需要監(jiān)控,/tmp/src/下的其他文件和目錄都同步攻询。(其實(shí)對(duì)于打開(kāi)的臨時(shí)文件从撼,可以不監(jiān)聽(tīng)modify時(shí)間而改成監(jiān)聽(tīng)close_write

inotifywait排除監(jiān)控目錄有--exclude <pattern>--fromfile <file>兩種格式,并且可以同時(shí)使用钧栖,但主要前者可以用正則低零,而后者只能是具體的目錄或文件。

# vi /etc/inotify_exclude.lst:
/tmp/src/pdf
@/tmp/src/2014

使用fromfile格式只能用絕對(duì)路徑桐经,不能使用諸如*正則表達(dá)式去匹配,@表示排除浙滤。

如果要排除的格式比較復(fù)雜阴挣,必須使用正則,那只能在inotifywait中加入選項(xiàng)纺腊,如--exclude '(.*/*\.log|.*/*\.swp)$|^/tmp/src/mail/(2014|201.*/cache.*)'畔咧,表示排除/tmp/src/mail/以下的2014目錄,和所有201*目錄下的帶cache的文件或目錄揖膜,以及/tmp/src目錄下所有的以.log或.swp結(jié)尾的文件誓沸。

3.1.2 rsync排除

使用inotifywait排除監(jiān)控目錄的情況下,必須同時(shí)使用rsync排除對(duì)應(yīng)的目錄壹粟,否則只要有觸發(fā)同步操作拜隧,必然會(huì)導(dǎo)致不該同步的目錄也會(huì)同步。與inotifywait類(lèi)似趁仙,rsync的同步也有--exclude--exclude-from兩種寫(xiě)法洪添。

個(gè)人還是習(xí)慣將要排除同步的目錄卸載單獨(dú)的文件列表里,便于管理雀费。使用--include-from=FILE時(shí)干奢,排除文件列表用絕對(duì)路徑,但FILE里面的內(nèi)容請(qǐng)用相對(duì)路徑盏袄,如:
/etc/rsyncd.d/rsync_exclude.lst

mail/2014/
mail/201*/201*/201*/.??*
mail??*
src/*.html*
src/js/
src/ext3/
src/2014/20140[1-9]/
src/201*/201*/201*/.??*
membermail/
membermail??*
membermail/201*/201*/201*/.??*

排除同步的內(nèi)容包括忿峻,mail下的2014目錄薄啥,類(lèi)似2015/201501/20150101/下的臨時(shí)或隱藏文件,等逛尚。

3.2 客戶(hù)端同步到遠(yuǎn)程的腳本rsync.sh

下面是一個(gè)完整的同步腳本垄惧,請(qǐng)根據(jù)需要進(jìn)行裁剪,rsync.sh

#rsync auto sync script with inotify
#2014-12-11 Sean
#variables
current_date=$(date +%Y%m%d_%H%M%S)
source_path=/tmp/src/
log_file=/var/log/rsync_client.log

#rsync
rsync_server=172.29.88.223
rsync_user=sean
rsync_pwd=/etc/rsync_client.pwd
rsync_module=module_test
INOTIFY_EXCLUDE='(.*/*\.log|.*/*\.swp)$|^/tmp/src/mail/(2014|20.*/.*che.*)'
RSYNC_EXCLUDE='/etc/rsyncd.d/rsync_exclude.lst'

#rsync client pwd check
if [ ! -e ${rsync_pwd} ];then
 echo -e "rsync client passwod file ${rsync_pwd} does not exist!"
 exit 0
fi

#inotify_function
inotify_fun(){
 /usr/bin/inotifywait -mrq --timefmt '%Y/%m/%d-%H:%M:%S' --format '%T %w %f' \
 --exclude ${INOTIFY_EXCLUDE}  -e modify,delete,create,move,attrib ${source_path} \
 | while read file
 do
 /usr/bin/rsync -auvrtzopgP --exclude-from=${RSYNC_EXCLUDE} --progress --bwlimit=200 --password-file=${rsync_pwd} ${source_path} ${rsync_user}@${rsync_server}::${rsync_module} 
 done
}

#inotify log
inotify_fun >> ${log_file} 2>&1 &

--bwlimit=200用于限制傳輸速率最大200kb黑低,因?yàn)樵趯?shí)際應(yīng)用中發(fā)現(xiàn)如果不做速率限制赘艳,會(huì)導(dǎo)致巨大的CPU消耗。

在客戶(hù)端運(yùn)行腳本# ./rsync.sh即可實(shí)時(shí)同步目錄克握。

疑問(wèn)
對(duì)于rsync的同步海量存在一個(gè)疑問(wèn)蕾管,假如我的文件數(shù)很多即使在排除不監(jiān)控和不同步目錄的情況下依然有10萬(wàn)個(gè)文件,僅文件列表就達(dá)10M菩暗,那么豈不是每一次有文件產(chǎn)生或修改都會(huì)觸發(fā)同步掰曾,很容易導(dǎo)致大部分情況下在傳輸文件列表和進(jìn)行列表的比對(duì),僅同步一個(gè)小文件而使用的網(wǎng)絡(luò)帶寬和CPU代價(jià)很高停团,特別是網(wǎng)絡(luò)狀況不佳時(shí)旷坦,上一次的列表還未傳送完,又有新的文件產(chǎn)生觸發(fā)發(fā)送文件列表佑稠。不知道rsync內(nèi)部有沒(méi)有這樣的處理秒梅?

其他功能:雙向同步sersync2實(shí)時(shí)同步多遠(yuǎn)程服務(wù)器

參考

?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請(qǐng)聯(lián)系作者
  • 序言:七十年代末捆蜀,一起剝皮案震驚了整個(gè)濱河市,隨后出現(xiàn)的幾起案子幔嫂,更是在濱河造成了極大的恐慌辆它,老刑警劉巖,帶你破解...
    沈念sama閱讀 206,839評(píng)論 6 482
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件履恩,死亡現(xiàn)場(chǎng)離奇詭異锰茉,居然都是意外死亡,警方通過(guò)查閱死者的電腦和手機(jī)切心,發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 88,543評(píng)論 2 382
  • 文/潘曉璐 我一進(jìn)店門(mén)飒筑,熙熙樓的掌柜王于貴愁眉苦臉地迎上來(lái),“玉大人绽昏,你說(shuō)我怎么就攤上這事扬霜。” “怎么了而涉?”我有些...
    開(kāi)封第一講書(shū)人閱讀 153,116評(píng)論 0 344
  • 文/不壞的土叔 我叫張陵著瓶,是天一觀的道長(zhǎng)。 經(jīng)常有香客問(wèn)我啼县,道長(zhǎng)材原,這世上最難降的妖魔是什么沸久? 我笑而不...
    開(kāi)封第一講書(shū)人閱讀 55,371評(píng)論 1 279
  • 正文 為了忘掉前任,我火速辦了婚禮余蟹,結(jié)果婚禮上卷胯,老公的妹妹穿的比我還像新娘。我一直安慰自己威酒,他們只是感情好窑睁,可當(dāng)我...
    茶點(diǎn)故事閱讀 64,384評(píng)論 5 374
  • 文/花漫 我一把揭開(kāi)白布。 她就那樣靜靜地躺著葵孤,像睡著了一般担钮。 火紅的嫁衣襯著肌膚如雪。 梳的紋絲不亂的頭發(fā)上尤仍,一...
    開(kāi)封第一講書(shū)人閱讀 49,111評(píng)論 1 285
  • 那天箫津,我揣著相機(jī)與錄音,去河邊找鬼宰啦。 笑死苏遥,一個(gè)胖子當(dāng)著我的面吹牛,可吹牛的內(nèi)容都是我干的赡模。 我是一名探鬼主播田炭,決...
    沈念sama閱讀 38,416評(píng)論 3 400
  • 文/蒼蘭香墨 我猛地睜開(kāi)眼,長(zhǎng)吁一口氣:“原來(lái)是場(chǎng)噩夢(mèng)啊……” “哼漓柑!你這毒婦竟也來(lái)了教硫?” 一聲冷哼從身側(cè)響起,我...
    開(kāi)封第一講書(shū)人閱讀 37,053評(píng)論 0 259
  • 序言:老撾萬(wàn)榮一對(duì)情侶失蹤欺缘,失蹤者是張志新(化名)和其女友劉穎栋豫,沒(méi)想到半個(gè)月后挤安,有當(dāng)?shù)厝嗽跇?shù)林里發(fā)現(xiàn)了一具尸體谚殊,經(jīng)...
    沈念sama閱讀 43,558評(píng)論 1 300
  • 正文 獨(dú)居荒郊野嶺守林人離奇死亡,尸身上長(zhǎng)有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點(diǎn)故事閱讀 36,007評(píng)論 2 325
  • 正文 我和宋清朗相戀三年蛤铜,在試婚紗的時(shí)候發(fā)現(xiàn)自己被綠了嫩絮。 大學(xué)時(shí)的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片。...
    茶點(diǎn)故事閱讀 38,117評(píng)論 1 334
  • 序言:一個(gè)原本活蹦亂跳的男人離奇死亡围肥,死狀恐怖剿干,靈堂內(nèi)的尸體忽然破棺而出,到底是詐尸還是另有隱情穆刻,我是刑警寧澤置尔,帶...
    沈念sama閱讀 33,756評(píng)論 4 324
  • 正文 年R本政府宣布,位于F島的核電站氢伟,受9級(jí)特大地震影響榜轿,放射性物質(zhì)發(fā)生泄漏幽歼。R本人自食惡果不足惜,卻給世界環(huán)境...
    茶點(diǎn)故事閱讀 39,324評(píng)論 3 307
  • 文/蒙蒙 一谬盐、第九天 我趴在偏房一處隱蔽的房頂上張望甸私。 院中可真熱鬧,春花似錦飞傀、人聲如沸皇型。這莊子的主人今日做“春日...
    開(kāi)封第一講書(shū)人閱讀 30,315評(píng)論 0 19
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽(yáng)弃鸦。三九已至,卻和暖如春外冀,著一層夾襖步出監(jiān)牢的瞬間寡键,已是汗流浹背。 一陣腳步聲響...
    開(kāi)封第一講書(shū)人閱讀 31,539評(píng)論 1 262
  • 我被黑心中介騙來(lái)泰國(guó)打工雪隧, 沒(méi)想到剛下飛機(jī)就差點(diǎn)兒被人妖公主榨干…… 1. 我叫王不留西轩,地道東北人。 一個(gè)月前我還...
    沈念sama閱讀 45,578評(píng)論 2 355
  • 正文 我出身青樓脑沿,卻偏偏與公主長(zhǎng)得像藕畔,于是被迫代替她去往敵國(guó)和親。 傳聞我的和親對(duì)象是個(gè)殘疾皇子庄拇,可洞房花燭夜當(dāng)晚...
    茶點(diǎn)故事閱讀 42,877評(píng)論 2 345

推薦閱讀更多精彩內(nèi)容