在Windows中配置Rsync同步文件的方法
Rsync是一款不錯的文件免費(fèi)同步軟件,可以鏡像保存整個目錄樹和文件系統(tǒng),同時保持原來文件的權(quán)限、時間、軟硬鏈接。第一次同步時 rsync 會復(fù)制全部內(nèi)容,下次只傳輸修改過的文件部分。傳輸數(shù)據(jù)過程中可以實(shí)行壓縮及解壓縮操作,減少帶寬流量。支持scp、ssh及直接socket方式連接,支持匿名傳輸。支持Linux,Window平臺。寫本文的時候,window版最新版為4.1.0版
官網(wǎng):http://rsync.samba.org/
Linux版下載:http://rsync.samba.org/download.html
Windows版下載:
客戶端:cwRsync_4.1.0_Installer.zip 服務(wù)器文件同步軟件客戶端
服務(wù)端:cwRsyncServer_4.1.0_Installer.zip服務(wù)器文件同步軟件 服務(wù)器端
現(xiàn)在官方開始了收費(fèi)版本,建議從腳本之家下載免費(fèi)版本
- cwRsync win 服務(wù)器同步軟件 cwRsync_2.1.5_Installer.zip
- 服務(wù)器數(shù)據(jù)同步 服務(wù)器端 cwRsync_Server_2.1.5_Installer.zip
- 服務(wù)器文件同步 cwRsync_3.1.0_Installer.zip
- 服務(wù)器文件同步軟件 服務(wù)器端 cwRsyncServer_3.1.0_Installer.zip
一、安裝配置 Rsync 服務(wù)端
Window版服務(wù)端:
1. 點(diǎn)擊服務(wù)端安裝程序進(jìn)行安裝,安裝過程中提示輸入服務(wù)端程序以服務(wù)運(yùn)行時的用戶名,密碼。可以自定義,也可以用默認(rèn)的用戶名密碼設(shè)置。
2. 安裝完成之后,進(jìn)入程序安裝目錄根目錄,打開配置文件(如:C:\Program Files\ICW\rsyncd.conf ),進(jìn)入配置。
默認(rèn)
use chroot = false strict modes = false uid = 0# 0代表不限定用戶 gid = 0 log file = rsyncd.log [testwin] path = /cygdrive/d/u01/nc_backup/# 和linux不同的是windows的備份目錄前面都要加/cygdrive ignore errors read only = false transfer logging = yes auth users = test_rsync # rsync的虛擬用戶 secrets file = etc/rsyncd.password # rsync的密碼文件路徑 hosts allow = * # 所有主機(jī)均可訪問
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
腳本之家用的
use chroot = false
strict modes = false
hosts allow = 222.186.55.55
log file = rsyncd.log
pid file = rsyncd.pid
# Module definitions
# Remember cygwin naming conventions : c:\work becomes /cygwin/c/work
#
[dddown]
path = /cygdrive/d/webroot/downjb51
read only = false
transfer logging = yes
auto user=wtjb51
secrets file=wtjb51.conf
[scjb51]
path = /cygdrive/d/webroot/scjb51
read only = false
transfer logging = yes
auto user=wtjb51
secrets file=wtjb51.conf
以上Windows目錄的寫法,應(yīng)該按照POSIX風(fēng)格來寫,默認(rèn)配置文件的寫法cygwin貌似不工作,而要寫成cygdrive,如D:/data,要寫成/cygdrive/d/data。
以上配置只允許192.168.1.21訪問,這里按需修改。
strict modes = false 不驗(yàn)證用戶密碼,
pid = 0,uid = 0指定匿名訪問。
auth users : 指訪問data_backup的用戶名
secrets file : data_backup用戶名對應(yīng)的密碼文件。
3. 新建密碼文件:E:\Setting\Rsync\rsync_db.ps 。如:
root:root
admin:12345
密碼文件格式:用戶名:密碼(root:12345),一行一個,有的系統(tǒng)不支持長密碼,另個密碼文件的權(quán)限對其它用戶組是不可讀的,設(shè)置錯了可能不工作。在Windows下,密碼文件的訪問權(quán)限一定要設(shè)置正確,不然用戶驗(yàn)證的時候通不過。應(yīng)將密碼文件E:\Setting\Rsync\rsync_db.ps的權(quán)限加入Rsycn服務(wù)運(yùn)行服務(wù)的用戶名 cwRsyncServer 的讀取權(quán)限 及 設(shè)置其為該文件為所有者。
4. 在服務(wù)管理器中,找到服務(wù) RsyncServer 服務(wù),并啟動服務(wù)。
5. 如果開啟了防火墻,則防火墻規(guī)則中要添加Tcp端口 28950 允許通信。
6. 服務(wù)驗(yàn)證,打開dos命令框,輸入telnet 192.168.1.20 28950 (如果沒有安裝telnet服務(wù)端與客戶端,請在控制面板->添加刪除程序->打開關(guān)閉windows功能中找到Telnet客戶端和服務(wù)端,勾選進(jìn)行安裝)。如果telnet能成功連接,出現(xiàn)@RSYNCD: 30.0 等類似文字,則說明服務(wù)啟動正常。
二、安裝配置 Rsync 客戶端
1. 安裝Rsync客戶端程序,直至安裝完成。
2. 測試服務(wù)器Rsync的連通性。在Rsync客戶端所在計算機(jī)telnet Rsync服務(wù)端所在計算的相應(yīng)地址和端口
telnet 192.168.1.20 28950
出現(xiàn)@RSYNCD: 30.0 等類似文字,則說明客戶端連接服務(wù)端正常。
3. 打開Dos命令窗口,進(jìn)到Rsync客戶端安裝目錄的bin目錄下,如:C:\Program Files\cwRsync\bin\。輸入以下命令,開始進(jìn)行同步:
rsync.exe -avz --password-file=rsync.password test_rsync@192.168.4.12::testwin /cygdrive/f/testwin_rsyncdir
注意:客戶端執(zhí)行的時候要在客戶端的bin目錄下,還有一種方式可以配環(huán)境變量
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
參數(shù)說明:
--port=28950 # 端口-vzrtopg --progress # 顯示同步過程詳細(xì)信息--delete # 從客戶端目錄中刪除與服務(wù)端目錄中不同的數(shù)據(jù),保證兩邊數(shù)據(jù)完全一致/cygwin/f/dataBackup # Window下目錄F:\dataBackupdata_backup # 服務(wù)端配置文件rsyncd.conf文件中定義的模塊名稱192.168.1.20 # Rsync服務(wù)端IP地址
設(shè)置該命令文件的用戶需要添加密碼文件的讀取權(quán)限及加其為文件所有者。如下:
4. 添加系統(tǒng)計劃定期執(zhí)行
新建命令執(zhí)行文件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中添加任務(wù)計劃,不同的系統(tǒng),操作有點(diǎn)不一樣。
windows xp/Server 2003 : 開始->設(shè)置->控制面板->任務(wù)計劃->打開添加任務(wù)計劃->下一步
windows 7/Server 2008 : 開始-> 控制面板 -> 管理工具 -> 任務(wù)計劃
三、配置項解析
參數(shù)說明
-a 參數(shù),相當(dāng)于-rlptgoD,
-r 是遞歸
-l 是鏈接文件,意思是拷貝鏈接文件;
-p 表示保持文件原有權(quán)限;
-t 保持文件原有時間;
-g 保持文件原有用戶組;
-o 保持文件原有屬主;
-D 相當(dāng)于塊設(shè)備文件;
-z 傳輸時壓縮;
-P 傳輸進(jìn)度;
-v verbose,詳細(xì)模式輸出;
-u是只同步已經(jīng)更新的文件,避免沒有更新的文件被重復(fù)更新一次,不過要注意兩者機(jī)器時鐘的同步;
--progress 顯示備份過程;
--delete 刪除那些DST中SRC沒有的文件,用作同步文件用;
定時自動更新配置
編寫rsync.bat批處理腳本
@echo off set rsynclog="C:\rsynclog\rsync.log" set nowtime=%date:~0,10% %time% echo %nowtime% >> %rsynclog% cd /d C:\"Program Files"\cwRsync\bin rsync.exe -avzPu --progress --delete rsync://192.168.0.108:8173/test /cygdrive/c/xuad >> %rsynclog% @echo -------------------------------------------------- >> %rsynclog% @echo. >> %rsynclog%
四、安裝配置中常見問題
錯誤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]
解決:很大可能是服務(wù)器端沒有開啟 rsync 服務(wù)。開啟服務(wù)。
錯誤2:@ERROR: chdir failed
rsync error: error starting client-server protocol (code 5) at main.c(1495) [receiver=3.0.2]
解決:服務(wù)器端同步目錄沒有權(quán)限,cwrsync默認(rèn)用戶是Svcwrsync。為同步目錄添加用戶Svcwrsync權(quán)限。
錯誤3:@ERROR: failed to open lock file
rsync error: error starting client-server protocol (code 5) at main.c(1495) [receiver=3.0.2]
解決:配置文件 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風(fēng)格的寫法:/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]
解決:密碼錯誤,輸入正確的密碼即可。用戶名和密碼如果都正確,可能是遠(yuǎn)程rsync服務(wù)器的帳戶密碼文件的權(quán)限必須為600。
錯誤6: password file must not be other-accessible
解決:這是因?yàn)閞syncd.pwd rsyncd.sec的權(quán)限不對,應(yīng)該設(shè)置為600。如:chmod 600 rsyncd.pwd, Windows下應(yīng)將密碼文件的所有者改成程序運(yùn)行的用戶。
錯誤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]
原因:服務(wù)器端的目錄不存在或無權(quán)限。創(chuàng)建目錄并修正權(quán)限可解決問題。
問題9:@ERROR: Unknown module ‘tee_nonexists'
rsync error: error starting client-server protocol (code 5) at main.c(1522) [receiver=3.0.3]
原因:服務(wù)器不存在指定模塊。提供正確的模塊名或在服務(wù)器端修改成你要的模塊以解決問題。
問題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]
原因:對方?jīng)]開機(jī)、防火墻阻擋、通過的網(wǎng)絡(luò)上有防火墻阻擋,都有可能。關(guān)閉防火墻,其實(shí)就是把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配置文件內(nèi)容有錯誤。請正確核對配置文件。
問題12:rsync: chown "" failed: Invalid argument (22)
原因:權(quán)限無法復(fù)制。去掉同步權(quán)限的參數(shù)即可。(這種情況多見于Linux向Windows的時候)
問題13:@ERROR: daemon security issue -- contact admin
rsync error: error starting client-server protocol (code 5) at main.c(1530) [sender=3.0.6]
原因:同步的目錄里面有軟連接文件,需要服務(wù)器端的/etc/rsyncd.conf打開use chroot = yes。掠過軟連接文件。
問題14:rsync: read error: Connection reset by peer (104)
rsync error: error in rsync protocol data stream (code 12) at io.c(794) [receiver=3.0.2]
解決:很大可能是服務(wù)器端沒有開啟 rsync 服務(wù),開啟服務(wù)。
rsyncserver 服務(wù)啟動時報錯“rsyncserver服務(wù)啟動后又停止了。一些服務(wù)自動停止,如果它們沒有什么可做的,例如“性能日志和警報”服務(wù)。”
解決方法:將安裝目錄下的rsyncd.pid文件刪除,再重新啟動RsyncServer服務(wù)。一般是異常關(guān)機(jī)導(dǎo)致的。
為了省事腳本之家小編直接寫了一個批處理,定時檢查rsync服務(wù)器端有沒有運(yùn)行,沒有就運(yùn)行即可。
@echo off
for /f "usebackq" %%i in (`"tasklist|find /c "cygrunsrv.exe""`) do (
set chkstat=%%i
)
if %chkstat% == 0 (
del "D:\Program Files\cwRsyncServer\rsyncd.pid" /f
net start RsyncServer
echo ================ >> %date:~0,10%.log
echo %date% %time% check rsync service stop >> rsync%date:~0,10%.log
echo restart rsync service! >> %date:~0,10%.log
echo ================ >> %date:~0,10%.log
)
五、重要說明
對于多臺服務(wù)器做文件同步,最好是連同數(shù)據(jù)備份一起做了。舉個例子:有A、B、C、D四臺服務(wù)器,需要保證四臺服務(wù)器一個或多個目錄的數(shù)據(jù)一致性,也就是BCD需要從A上同步一個或多個目錄的數(shù)據(jù),那么A就是更新源服務(wù)器,BCD就是目的服務(wù)器。現(xiàn)在有個問題,當(dāng)A的數(shù)據(jù)出現(xiàn)問題或丟失,那么BCD三臺的數(shù)據(jù)都會出現(xiàn)問題并且丟失,為了保證A的數(shù)據(jù)一定是正確的,我們在更新A服務(wù)器之前,就要先對A做數(shù)據(jù)備份。下面是個簡單的bat腳本,可以實(shí)現(xiàn)數(shù)據(jù)的自動備份并上傳至FTP服務(wù)器,可以把它加入到任務(wù)計劃里面定期執(zhí)行它。
Backup.bat腳本內(nèi)容如下:
@echo off set today=%date:~0,10% set nowh=%time:~0,2% set nowtime=%date:~0,10% %time% set rar="c:\Program Files\WinRAR\rar.exe" set ftplist="E:\baklog\ftpls.txt" set baklog="E:\baklog\backup.log" set FtpSrv=192.168.0.109 set FtpPort=21 set FtpUser=bak set FtpPwd=bak1q2w3e echo %nowtime% >> %baklog% ::Rar files %rar% a E:\backup\backup_%today%_%nowh%.rar F:\xuad >> %baklog% ::Upload files by ftp echo open %FtpSrv% %FtpPort% > %ftplist% echo user %FtpUser% %FtpPwd% >> %ftplist% echo cd backup >>%ftplist% echo bin >> %ftplist% echo prompt >> %ftplist% echo lcd E:\backup >>%ftplist% echo Put backup_%today%_%nowh%.rar >> %ftplist% echo quit >> %ftplist% echo bye >> %ftplist% ftp -n -s:%ftplist% >> %baklog% echo. > %rarlist% @echo -------------------------------------------------- >> %baklog% @echo. >> %baklog%
到此這篇關(guān)于在Windows中配置Rsync同步文件的方法的文章就介紹到這了,更多相關(guān)Rsync同步文件內(nèi)容請搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!
- 用rsync實(shí)現(xiàn)windows與linux文件同步的方法
- windows下rsync的數(shù)據(jù)同步安裝配置方法
- cwrsync 四步實(shí)現(xiàn)windows備份
- windows下使用cwRsync定期備份網(wǎng)站(服務(wù)器文件同步)
- cwrsync實(shí)現(xiàn)從linux到windows的數(shù)據(jù)同步備份
- 使用cwRsync實(shí)現(xiàn)windows下服務(wù)器文件定時同步備份(附錯誤處理方法)
- 用cwrsync同步windows下數(shù)據(jù)的簡單配置方法
- Windows rsync服務(wù)器備份配置實(shí)例
- windows2008系統(tǒng)中rsync計劃任務(wù)返回0x1問題處理
相關(guān)文章
IIS卸載后重裝時提示:安裝程序無法復(fù)制一個或多個文件 特定錯誤碼是 0xe0000233
今天由于iis出現(xiàn)錯誤,以為是iis錯誤就卸載了iis,在安裝過程中碰到了一些問題,特將解決思路給大家分享下。2011-08-08windows2003 apache配置虛擬主機(jī)和綁定域名服務(wù)
年前就找朋友申請一個域名,由于工作比較忙也沒弄,昨天下午在搞apache虛擬主機(jī)配置,試了很多次就是不行,不知道怎么搞。今天上午終于找到原因了。。。。。。。。。自己太粗心了,忘了一個設(shè)置。實(shí)在慚愧?。?2009-02-02在dell PowerEdge 2950上安裝win2003 server的方法介紹
本文介紹下,在dell PowerEdge 2950上,安裝windows 2003 server的方法,以及遇到的一些問題與解決方法,有遇到類似問題的朋友,可以參考下2013-05-05IIS 應(yīng)用程序池 CPU 100% 分析軟件,找出具體有問題的ASP程序URL
一個 IIS 6.0 / 7.0 服務(wù)器上可能存在著100-300個WEB站點(diǎn),如果其中一個站點(diǎn)的ASP程序設(shè)計存在問題,那么將會引起CPU 持續(xù)占用100%,從而引起同一個服務(wù)器其他站點(diǎn)不能正常工作,或訪問緩慢。2009-04-04