1. cwRsync簡(jiǎn)介
cwRsync是Rsync在Windows上的實(shí)現(xiàn)版本,Rsync通過(guò)使用特定算法的文件傳輸技術(shù),可以在網(wǎng)絡(luò)上傳輸只修改了的文件。
cwRsync主要用于Windows上的遠(yuǎn)程文件同步備份和同步,它包含Cygwin DLL和適用Cygwin版本的Rsync兩部分。
cwRsync分為Server和Client,本文使用的版本為4.1.0,下載地址如下:
cwRsyncServer v4.1.0:http://pan.baidu.com/s/1eQpaIVw
cwRsync v4.1.0:http://pan.baidu.com/s/1pJ3B1FX
或者到s.jb51.net下載
下面舉例介紹Server及Client端的配置使用,本文使用環(huán)境如下:
Server: 192.168.85.236
Client: 192.168.85.249
2. Server安裝使用
2.1 安裝
一路點(diǎn)擊Next,使用默認(rèn)配置安裝即可。
2.2 配置
修改配置文件rsyncd.conf如下(默認(rèn)位置:C:\Program Files\ICW\):
use chroot = false strict modes = false hosts allow = * log file = rsyncd.log pid file = rsyncd.pid port = 873 uid = 0 gid = 0 # Module definitions # Remember cygwin naming conventions : c:\work becomes /cygwin/c/work # [test] path = /cygdrive/d/test read only = false transfer logging = yes
部分重要參數(shù)解釋如下:
use chroot = false
strict modes = false
hosts allow = * #允許所有IP訪(fǎng)問(wèn)
log file = rsyncd.log #日志文件
pid file = rsyncd.pid #進(jìn)程文件
port = 873 #服務(wù)端口號(hào)
uid = 0 #不限定用戶(hù)
gid = 0 #不限定組
# Module definitions
# Remember cygwin naming conventions : c:\work becomes /cygwin/c/work
#
[test] #認(rèn)證的模塊名,在client端需要指定使用
path = /cygdrive/d/test #需要做鏡像同步的目錄,如d:/test
read only = false
transfer logging = yes
注:
1. uid=0和gid=0需要指定,否則后面client進(jìn)行同步時(shí)會(huì)報(bào)錯(cuò):
@ERROR: invalid uid nobody
rsync error: error starting client-server protocol (code 5) at main.c(1516) [Receiver=3.0.8]
2. 上述只是簡(jiǎn)單的配置示例,還有很多其他的選項(xiàng),可以參考幫助文件:C:\Program Files\ICW\doc\rsyncd.conf.html
2.3 啟動(dòng)服務(wù)
在Server機(jī)器上運(yùn)行services.msc,選擇服務(wù)"RsyncServer"配置啟動(dòng)類(lèi)型為"自動(dòng)",后啟動(dòng)該服務(wù)。
3. Client安裝使用
3.1 安裝
與Server相同,一路點(diǎn)擊Next,使用默認(rèn)配置安裝即可。
3.2 使用
新建一個(gè)test.bat文件,內(nèi)容如下:
@echo off set RSYNC_HOME=C:\Program Files\cwRsync\bin cd %RSYNC_HOME% C: rsync -avzP --progress --delete rsync://192.168.85.236:873/test /cygdrive/d/test
命令參數(shù)詳解:
-avzP -a 參數(shù),相當(dāng)于-rlptgoD: -r 是遞歸 -l 是鏈接文件,意思是拷貝鏈接文件 -p 表示保持文件原有權(quán)限 -t 保持文件原有時(shí)間 -g 保持文件原有用戶(hù)組 -o 保持文件原有屬主 -D 相當(dāng)于塊設(shè)備文件 -v 詳細(xì)模式輸出 -z 傳輸時(shí)壓縮 -P 顯示傳輸進(jìn)度 --progress 顯示備份同步過(guò)程 --delete 刪除Client中有Server沒(méi)有的文件,即如果Server刪除了這一文件,那么client也相應(yīng)把文件刪除,保持真正的一致 rsync://192.168.85.236:873/test 配置Sever的IP地址及需要同步的模塊名(Server rsyncd.conf中配置) /cygdrive/d/test 存放同步文件的Client本地目錄D:\test
運(yùn)行bat,Client會(huì)進(jìn)行文件遠(yuǎn)程同步,截圖如下:
3.3 測(cè)試
在上述環(huán)境上,進(jìn)行了大批量文件的同步測(cè)試,結(jié)果如下:
1.每次進(jìn)行同步時(shí),client均會(huì)獲取更新文件列表,文件數(shù)目比較大時(shí)(2.7w 27.5G)耗時(shí)較長(zhǎng)(5min47s)
2.在此基礎(chǔ)上進(jìn)行增量更新耗時(shí)較短,更新100個(gè)文件(減去獲取列表時(shí)間)只需耗時(shí)16s
4.計(jì)劃任務(wù)配置
1. 在client機(jī)器上選擇:控制面板->任務(wù)計(jì)劃->添加任務(wù)計(jì)劃
2. 點(diǎn)擊下一步->瀏覽,打開(kāi)上述的test.bat文件
3. 選擇每天執(zhí)行一次
4. 配置起始時(shí)間
5. 點(diǎn)擊下一步,輸入服務(wù)器用戶(hù)名及密碼,完成任務(wù)添加
6. 選擇剛才添加的任務(wù),配置屬性:日常安排->高級(jí),選擇重復(fù)任務(wù),配置每20分鐘執(zhí)行一次,持續(xù)24小時(shí)
這時(shí),計(jì)劃任務(wù)就會(huì)每天24小時(shí),每20分鐘運(yùn)行一次的方式來(lái)自動(dòng)進(jìn)行client與Server間的數(shù)據(jù)同步了。