Windows遠程數據同步工具cwRsync

1. cwRsync簡介

cwRsync是Rsync在Windows上的實現版本,Rsync經過使用特定算法的文件傳輸技術,能夠在網絡上傳輸只修改了的文件。html

cwRsync主要用於Windows上的遠程文件同步備份和同步,它包含Cygwin DLL和適用Cygwin版本的Rsync兩部分。算法

cwRsync分爲Server和Client,本文使用的版本爲4.1.0,下載地址以下:windows

cwRsyncServer v4.1.0:http://pan.baidu.com/s/1eQpaIVw服務器

cwRsync v4.1.0:http://pan.baidu.com/s/1pJ3B1FX網絡

下面舉例介紹Server及Client端的配置使用,本文使用環境以下:ide

Server: 127.0.0.1post

Client: 127.0.0.1ui

2. Server安裝使用

2.1 安裝

一路點擊Next,使用默認配置安裝便可。spa

2.2 配置

修改配置文件rsyncd.conf以下(默認位置:C:\Program Files\ICW\):日誌

 1 use chroot = false
 2 strict modes = false
 3 hosts allow = *
 4 log file = rsyncd.log
 5 pid file = rsyncd.pid
 6 port = 873
 7 uid = 0
 8 gid = 0
 9 
10 # Module definitions
11 # Remember cygwin naming conventions : c:\work becomes /cygwin/c/work
12 #
13 [test]
14 path = /cygdrive/d/test
15 read only = false
16 transfer logging = yes
View Code

部分重要參數解釋以下:

 1 use chroot = false
 2 strict modes = false
 3 hosts allow = * #容許全部IP訪問
 4 log file = rsyncd.log #日誌文件
 5 pid file = rsyncd.pid #進程文件
 6 port = 873 #服務端口號
 7 uid = 0 #不限定用戶
 8 gid = 0 #不限定組
 9 
10 # Module definitions
11 # Remember cygwin naming conventions : c:\work becomes /cygwin/c/work
12 #
13 [test] #認證的模塊名,在client端須要指定使用
14 path = /cygdrive/d/test #須要作鏡像同步的目錄,如d:/test
15 read only = false
16 transfer logging = yes
View Code

  1. uid=0和gid=0 須要指定,不然後面client進行同步時會報錯:

    @ERROR: invalid uid nobody rsync error: error starting client-server protocol (code 5) at main.c(1516) [Receiver=3.0.8]

  2. 上述只是簡單的配置示例,還有不少其餘的選項,能夠參考幫助文件:C:\Program Files\ICW\doc\rsyncd.conf.html

2.3 啓動服務

在Server機器上運行services.msc,選擇服務"RsyncServer"配置啓動類型爲"自動",後啓動該服務。

3. Client安裝使用

3.1 安裝

與Server相同,一路點擊Next,使用默認配置安裝便可。

3.2 使用

新建一個test.bat文件,內容以下:

@echo off
set RSYNC_HOME=C:\Program Files\cwRsync\bin
cd %RSYNC_HOME%
rsync -avzrP --progress --delete rsync://127.0.0.1:873/test /cygdrive/e/test

命令參數詳解:

-avzP  
-a 參數,至關於-rlptgoD:
-r 是遞歸
-l 是連接文件,意思是拷貝連接文件
-p 表示保持文件原有權限
-t 保持文件原有時間
-g 保持文件原有用戶組
-o 保持文件原有屬主
-D 至關於塊設備文件

-v 詳細模式輸出
-z 傳輸時壓縮
-P 顯示傳輸進度

--progress 顯示備份同步過程
--delete 刪除Client中有Server沒有的文件,即若是Server刪除了這一文件,那麼client也相應把文件刪除,保持真正的一致

rsync://127.0.0.1:873/test 配置Sever的IP地址及須要同步的模塊名(Server rsyncd.conf中配置) /cygdrive/e/test 存放同步文件的Client本地目錄e:\test

運行test.bat,Client會進行文件遠程同步,截圖以下:

4.Windows下rsync服務沒法啓動的解決方法

  服務器在乎外重啓後,RsyncServer服務不能啓動,提示「本地計算機上的reyncserver服務啓動後又中止了」,方法是將安裝目錄下的rsyncd.pid文件刪除或更名便可,再從新啓動RsyncServer服務,OK,成功了,rsyncd.pid文件會自動從新生成。

5.rsync排除目錄的使用方法

需求場景:當前但願將一臺server上面的一個文件夾同步到5個client上面去,可是又不但願同步全部文件,由個別文件是不須要同步的,因此必須在server的配置文件中添加排除同步的文件,這就須要用到了exclude這個參數。這個能夠在client上面使用,也能夠直接在server上面的進行配置。下面的例子是在server的rsyncd.conf文件上面配置的。

案例:config文件目錄下有test一、test2和test3這三個目錄,這三個目錄當中都有一個test.txt文件。下面經過不一樣的配置信息來實現不一樣的同步要求。

ENVISION——config——test1——test.txt

        ||———test2——test.txt

        ||———test3——test.txt

5.1經過exclude關鍵字實現test1目錄的例外

[config]
path = /cygdrive/d/ENVISION/config
#exclude from = rsync.exclude
exclude = test1/
read only = false
transfer logging = yes
lock file = rsyncd.lock

5.2經過exclude from關鍵字實現test2和test3目錄的例外

[config]
path = /cygdrive/d/ENVISION/config
exclude from = rsync.exclude
#exclude = test1/
read only = false
transfer logging = yes
lock file = rsyncd.lock

其中rsync.excluede文件跟rsyncd.conf在同一目錄下,其中的文件內容是,其中「/」很是重要。

test2/
test3/

5.3排除目錄下的指定文件

exclude和exclude from不單單指限制與目錄,也可使指定的文件名。

在test1目錄下添加一個文件test2.txt,而後進行以下配置

[config]
path = /cygdrive/d/ENVISION/config
exclude from = rsync.exclude
exclude = test1/test.txt
read only = false
transfer logging = yes
lock file = rsyncd.lock

轉載: http://lovesoo.org/windows-remote-data-synchronization-tool-cwrsync.html

相關文章
相關標籤/搜索