天天看點

在Windows中配置Rsync同步

在Windows中配置Rsync同步

Rsync是一款不錯的檔案免費同步軟體,可以鏡像儲存整個目錄樹和檔案系統,同時保持原來檔案的權限、時間、軟硬連結。第一次同步時 rsync 會複制全部内容,下次隻傳輸修改過的檔案部分。傳輸資料過程中可以實行壓縮及解壓縮操作,減少帶寬流量。支援scp、ssh及直接socket方式連接配接,支援匿名傳輸。支援Linux,Window平台。寫本文的時候,window版最新版為4.0.5版

官網:http://rsync.samba.org/

Linux版下載下傳:http://rsync.samba.org/download.html

Windows版下載下傳:https://www.itefix.no/i2/cwrsync-get 選(Free Edition 免費版)

用戶端:cwRsync 4.0.5 Installer

服務端:cwRsyncServer 4.0.5 Installer

或雲盤下載下傳

http://pan.baidu.com/s/1sjqOLsD

用戶端:cwRsync 4.1.0 Installer

服務端:cwRsyncServer 4.1.0 Installer

一、安裝配置 Rsync 服務端

Window版服務端:

1. 點選服務端安裝程式進行安裝,安裝過程中提示輸入服務端程式以服務運作時的使用者名,密碼。可以自定義,也可以用預設的使用者名密碼設定。

2. 安裝完成之後,進入程式安裝目錄根目錄,打開配置檔案(如:C:\Program Files\ICW\rsyncd.conf ),進入配置。

use chroot = false
strict modes = false
lock file = rsyncd.lock 
hosts allow = 192.168.1.21
max connections = 5
port = 28950
pid = 0
uid = 0

log file = /cygdrive/f/RsyncLog/rsyncd.log

# Module definitions
# Remember cygwin naming conventions : c:\work becomes /cygdrive/c/work

[data_backup]
path = /cygdrive/f/dataBackup
auth users = dbbackuper
secrets file = /cygdrive/e/Setting/Rsync/rsync_db.ps
read only = no
list = no
transfer logging = yes

以上Windows目錄的寫法,應該按照POSIX風格來寫,預設配置檔案的寫法cygwin貌似不工作,而要寫成cygdrive,如D:/data,要寫成/cygdrive/d/data。
以上配置隻允許192.168.1.21通路,這裡按需修改。
strict modes = false 不驗證使用者密碼,
pid = 0,uid = 0指定匿名通路。
auth users : 指通路data_backup的使用者名
secrets file : data_backup使用者名對應的密碼檔案。
 
3. 建立密碼檔案:E:\Setting\Rsync\rsync_db.ps 。如:
root:root
admin:12345
密碼檔案格式:使用者名:密碼,一行一個,有的系統不支援長密碼,另個密碼檔案的權限對其它使用者組是不可讀的,設定錯了可能不工作。在Windows下,密碼檔案的通路權限一定要設定正确,不然使用者驗證的時候通不過。應将密碼檔案E:\Setting\Rsync\rsync_db.ps的權限加入Rsycn服務運作服務的使用者名 cwRsyncServer 的讀取權限 及 設定其為該檔案為所有者。      
在Windows中配置Rsync同步

4. 在服務管理器中,找到服務 RsyncServer 服務,并啟動服務。

5. 如果開啟了防火牆,則防火牆規則中要添加Tcp端口 28950 允許通信。

在Windows中配置Rsync同步

6. 服務驗證,打開dos指令框,輸入telnet 192.168.1.20 28950 (如果沒有安裝telnet服務端與用戶端,請在控制台->添加删除程式->打開關閉windows功能中找到Telnet用戶端和服務端,勾選進行安裝)。如果telnet能成功連接配接,出現@RSYNCD: 30.0 等類似文字,則說明服務啟動正常。

在Windows中配置Rsync同步

二、安裝配置 Rsync 用戶端

1. 安裝Rsync用戶端程式,直至安裝完成。

2. 測試伺服器Rsync的連通性。在Rsync用戶端所在計算機telnet Rsync服務端所在計算的相應位址和端口 

telnet 192.168.1.20 28950      

出現@RSYNCD: 30.0 等類似文字,則說明用戶端連接配接服務端正常。

在Windows中配置Rsync同步

3. 打開Dos指令視窗,進到Rsync用戶端安裝目錄的bin目錄下,如:C:\Program Files\cwRsync\bin\。輸入以下指令,開始進行同步:

cd C:\Program Files\cwRsync\bin\rsync --port=28950 -vzrtopg --progress --delete 192.168.1.20::data_backup /cygwin/f/dataBackup --password-file=/cygdrive/e/Setting/Rsync/rsync_db.ps      

參數說明:

--port=28950 # 端口-vzrtopg --progress # 顯示同步過程詳細資訊--delete # 從用戶端目錄中删除與服務端目錄中不同的資料,保證兩邊資料完全一緻/cygwin/f/dataBackup # Window下目錄F:\dataBackupdata_backup # 服務端配置檔案rsyncd.conf檔案中定義的子產品名稱192.168.1.20 # Rsync服務端IP位址      

設定該指令檔案的使用者需要添加密碼檔案的讀取權限及加其為檔案所有者。如下:

在Windows中配置Rsync同步

 4. 添加系統計劃定期執行

 建立指令執行檔案C:\Program Files\cwRsync\bin\SyncDB_NoAuth.cmd。将以下指令儲存到該檔案中:

rsync --port=28950 -vzrtopg --progress --delete 192.168.1.20::data_backup /cygwin/f/dataBackup --password-file=/cygdrive/e/Setting/Rsync/rsync_db.ps      

在Window中添加任務計劃,不同的系統,操作有點不一樣。

windows xp/Server 2003 : 開始->設定->控制台->任務計劃->打開添加任務計劃->下一步

windows 7/Server 2008 : 開始-> 控制台 -> 管理工具 -> 任務計劃

在Windows中配置Rsync同步
在Windows中配置Rsync同步
在Windows中配置Rsync同步

三、配置項解析

四、安裝配置中常見問題

錯誤1: rsync: read error: Connection reset by peer (104) 

rsync error: error in rsync protocol data stream (code 12) at io.c(794) [receive r=3.0.2] 

解決:很大可能是伺服器端沒有開啟 rsync 服務。開啟服務。

錯誤2:@ERROR: chdir failed 

rsync error: error starting client-server protocol (code 5) at main.c(1495) [receiver=3.0.2] 

解決:伺服器端同步目錄沒有權限,cwrsync預設使用者是Svcwrsync。為同步目錄添加使用者Svcwrsync權限。

錯誤3:@ERROR: failed to open lock file 

解決:配置檔案 rsync.conf中添加 lock file = rsyncd.lock 即可解決。

錯誤4: rsync: could not open password file "/cygwin/e/Setting/Rsync/rsync_db.pwd": No such file or directory (2)

解決:密碼檔案的目錄一定要存在,而且要用POSIX風格的寫法:/cygdrive/e/Setting/Rsync/rsync_db.pwd

錯誤5:@ERROR: auth failed on module data_backup rsync error: error starting client-server protocol (code 5) at main.c(1506) [Receiver=3.0.7]

解決:密碼錯誤,輸入正确的密碼即可。使用者名和密碼如果都正确,可能是遠端rsync伺服器的帳戶密碼檔案的權限必須為600。

錯誤6: password file must not be other-accessible

解決:這是因為rsyncd.pwd rsyncd.sec的權限不對,應該設定為600。如:chmod 600 rsyncd.pwd, Windows下應将密碼檔案的所有者改成程式運作的使用者。

錯誤7:@ERROR: invalid uid nobody . rsync error: error starting client-server protocol (code 5) at main.c(1506) [Receiver=3.0.7]

解決:在rsyncd.conf檔案中添加下面兩行即可

uid = 0

gid = 0 

問題8: @ERROR: chroot failed

rsync error: error starting client-server protocol (code 5) at main.c(1522) [receiver=3.0.3]

原因:伺服器端的目錄不存在或無權限。建立目錄并修正權限可解決問題。

問題9:@ERROR: Unknown module ‘tee_nonexists’

原因:伺服器不存在指定子產品。提供正确的子產品名或在伺服器端修改成你要的子產品以解決問題。

問題10:rsync: failed to connect to 218.107.243.2: No route to host (113)

rsync error: error in socket IO (code 10) at clientserver.c(104) [receiver=2.6.9]

原因:對方沒開機、防火牆阻擋、通過的網絡上有防火牆阻擋,都有可能。關閉防火牆,其實就是把tcp udp的873或者指定的rsync端口打開。

問題11:rsync error: error starting client-server protocol (code 5) at main.c(1524) [Receiver=3.0.7]

原因:/etc/rsyncd.conf配置檔案内容有錯誤。請正确核對配置檔案。

問題12:rsync: chown "" failed: Invalid argument (22)

原因:權限無法複制。去掉同步權限的參數即可。(這種情況多見于Linux向Windows的時候)

繼續閱讀