在Windows中配置Rsync同步文件的方法
Rsync是一款不錯(cuò)的文件免費(fèi)同步軟件,可以鏡像保存整個(gè)目錄樹(shù)和文件系統(tǒng),同時(shí)保持原來(lái)文件的權(quán)限、時(shí)間、軟硬鏈接。第一次同步時(shí) rsync 會(huì)復(fù)制全部?jī)?nèi)容,下次只傳輸修改過(guò)的文件部分。傳輸數(shù)據(jù)過(guò)程中可以實(shí)行壓縮及解壓縮操作,減少帶寬流量。支持scp、ssh及直接socket方式連接,支持匿名傳輸。支持Linux,Window平臺(tái)。寫本文的時(shí)候,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)在官方開(kāi)始了收費(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)行安裝,安裝過(guò)程中提示輸入服務(wù)端程序以服務(wù)運(yùn)行時(shí)的用戶名,密碼??梢宰远x,也可以用默認(rèn)的用戶名密碼設(shè)置。
2. 安裝完成之后,進(jìn)入程序安裝目錄根目錄,打開(kāi)配置文件(如: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ī)均可訪問(wèn)
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)格來(lái)寫,默認(rèn)配置文件的寫法cygwin貌似不工作,而要寫成cygdrive,如D:/data,要寫成/cygdrive/d/data。
以上配置只允許192.168.1.21訪問(wèn),這里按需修改。
strict modes = false 不驗(yàn)證用戶密碼,
pid = 0,uid = 0指定匿名訪問(wèn)。
auth users : 指訪問(wèn)data_backup的用戶名
secrets file : data_backup用戶名對(duì)應(yīng)的密碼文件。
3. 新建密碼文件:E:\Setting\Rsync\rsync_db.ps 。如:
root:root
admin:12345
密碼文件格式:用戶名:密碼(root:12345),一行一個(gè),有的系統(tǒng)不支持長(zhǎng)密碼,另個(gè)密碼文件的權(quán)限對(duì)其它用戶組是不可讀的,設(shè)置錯(cuò)了可能不工作。在Windows下,密碼文件的訪問(wèn)權(quán)限一定要設(shè)置正確,不然用戶驗(yàn)證的時(shí)候通不過(guò)。應(yīng)將密碼文件E:\Setting\Rsync\rsync_db.ps的權(quán)限加入Rsycn服務(wù)運(yùn)行服務(wù)的用戶名 cwRsyncServer 的讀取權(quán)限 及 設(shè)置其為該文件為所有者。
4. 在服務(wù)管理器中,找到服務(wù) RsyncServer 服務(wù),并啟動(dòng)服務(wù)。
5. 如果開(kāi)啟了防火墻,則防火墻規(guī)則中要添加Tcp端口 28950 允許通信。
6. 服務(wù)驗(yàn)證,打開(kāi)dos命令框,輸入telnet 192.168.1.20 28950 (如果沒(méi)有安裝telnet服務(wù)端與客戶端,請(qǐng)?jiān)诳刂泼姘?>添加刪除程序->打開(kāi)關(guān)閉windows功能中找到Telnet客戶端和服務(wù)端,勾選進(jìn)行安裝)。如果telnet能成功連接,出現(xiàn)@RSYNCD: 30.0 等類似文字,則說(shuō)明服務(wù)啟動(dòng)正常。
二、安裝配置 Rsync 客戶端
1. 安裝Rsync客戶端程序,直至安裝完成。
2. 測(cè)試服務(wù)器Rsync的連通性。在Rsync客戶端所在計(jì)算機(jī)telnet Rsync服務(wù)端所在計(jì)算的相應(yīng)地址和端口
telnet 192.168.1.20 28950
出現(xiàn)@RSYNCD: 30.0 等類似文字,則說(shuō)明客戶端連接服務(wù)端正常。
3. 打開(kāi)Dos命令窗口,進(jìn)到Rsync客戶端安裝目錄的bin目錄下,如:C:\Program Files\cwRsync\bin\。輸入以下命令,開(kāi)始進(jìn)行同步:
rsync.exe -avz --password-file=rsync.password test_rsync@192.168.4.12::testwin /cygdrive/f/testwin_rsyncdir
注意:客戶端執(zhí)行的時(shí)候要在客戶端的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ù)說(shuō)明:
--port=28950 # 端口-vzrtopg --progress # 顯示同步過(guò)程詳細(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)計(jì)劃定期執(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ù)計(jì)劃,不同的系統(tǒng),操作有點(diǎn)不一樣。
windows xp/Server 2003 : 開(kāi)始->設(shè)置->控制面板->任務(wù)計(jì)劃->打開(kāi)添加任務(wù)計(jì)劃->下一步
windows 7/Server 2008 : 開(kāi)始-> 控制面板 -> 管理工具 -> 任務(wù)計(jì)劃
三、配置項(xiàng)解析
參數(shù)說(shuō)明
-a 參數(shù),相當(dāng)于-rlptgoD,
-r 是遞歸
-l 是鏈接文件,意思是拷貝鏈接文件;
-p 表示保持文件原有權(quán)限;
-t 保持文件原有時(shí)間;
-g 保持文件原有用戶組;
-o 保持文件原有屬主;
-D 相當(dāng)于塊設(shè)備文件;
-z 傳輸時(shí)壓縮;
-P 傳輸進(jìn)度;
-v verbose,詳細(xì)模式輸出;
-u是只同步已經(jīng)更新的文件,避免沒(méi)有更新的文件被重復(fù)更新一次,不過(guò)要注意兩者機(jī)器時(shí)鐘的同步;
--progress 顯示備份過(guò)程;
--delete 刪除那些DST中SRC沒(méi)有的文件,用作同步文件用;
定時(shí)自動(dòng)更新配置
編寫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%
四、安裝配置中常見(jiàn)問(wèn)題
錯(cuò)誤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ù)器端沒(méi)有開(kāi)啟 rsync 服務(wù)。開(kāi)啟服務(wù)。
錯(cuò)誤2:@ERROR: chdir failed
rsync error: error starting client-server protocol (code 5) at main.c(1495) [receiver=3.0.2]
解決:服務(wù)器端同步目錄沒(méi)有權(quán)限,cwrsync默認(rèn)用戶是Svcwrsync。為同步目錄添加用戶Svcwrsync權(quán)限。
錯(cuò)誤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 即可解決。
錯(cuò)誤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
錯(cuò)誤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]
解決:密碼錯(cuò)誤,輸入正確的密碼即可。用戶名和密碼如果都正確,可能是遠(yuǎn)程rsync服務(wù)器的帳戶密碼文件的權(quán)限必須為600。
錯(cuò)誤6: password file must not be other-accessible
解決:這是因?yàn)閞syncd.pwd rsyncd.sec的權(quán)限不對(duì),應(yīng)該設(shè)置為600。如:chmod 600 rsyncd.pwd, Windows下應(yīng)將密碼文件的所有者改成程序運(yùn)行的用戶。
錯(cuò)誤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
問(wèn)題8: @ERROR: chroot failed
rsync error: error starting client-server protocol (code 5) at main.c(1522) [receiver=3.0.3]
原因:服務(wù)器端的目錄不存在或無(wú)權(quán)限。創(chuàng)建目錄并修正權(quán)限可解決問(wèn)題。
問(wè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ù)器端修改成你要的模塊以解決問(wèn)題。
問(wèn)題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]
原因:對(duì)方?jīng)]開(kāi)機(jī)、防火墻阻擋、通過(guò)的網(wǎng)絡(luò)上有防火墻阻擋,都有可能。關(guān)閉防火墻,其實(shí)就是把tcp udp的873或者指定的rsync端口打開(kāi)。
問(wèn)題11:rsync error: error starting client-server protocol (code 5) at main.c(1524) [Receiver=3.0.7]
原因:/etc/rsyncd.conf配置文件內(nèi)容有錯(cuò)誤。請(qǐng)正確核對(duì)配置文件。
問(wèn)題12:rsync: chown "" failed: Invalid argument (22)
原因:權(quán)限無(wú)法復(fù)制。去掉同步權(quán)限的參數(shù)即可。(這種情況多見(jiàn)于Linux向Windows的時(shí)候)
問(wèn)題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打開(kāi)use chroot = yes。掠過(guò)軟連接文件。
問(wèn)題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ù)器端沒(méi)有開(kāi)啟 rsync 服務(wù),開(kāi)啟服務(wù)。
rsyncserver 服務(wù)啟動(dòng)時(shí)報(bào)錯(cuò)“rsyncserver服務(wù)啟動(dòng)后又停止了。一些服務(wù)自動(dòng)停止,如果它們沒(méi)有什么可做的,例如“性能日志和警報(bào)”服務(wù)。”
解決方法:將安裝目錄下的rsyncd.pid文件刪除,再重新啟動(dòng)RsyncServer服務(wù)。一般是異常關(guān)機(jī)導(dǎo)致的。
為了省事腳本之家小編直接寫了一個(gè)批處理,定時(shí)檢查rsync服務(wù)器端有沒(méi)有運(yùn)行,沒(méi)有就運(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
)
五、重要說(shuō)明
對(duì)于多臺(tái)服務(wù)器做文件同步,最好是連同數(shù)據(jù)備份一起做了。舉個(gè)例子:有A、B、C、D四臺(tái)服務(wù)器,需要保證四臺(tái)服務(wù)器一個(gè)或多個(gè)目錄的數(shù)據(jù)一致性,也就是BCD需要從A上同步一個(gè)或多個(gè)目錄的數(shù)據(jù),那么A就是更新源服務(wù)器,BCD就是目的服務(wù)器。現(xiàn)在有個(gè)問(wèn)題,當(dāng)A的數(shù)據(jù)出現(xiàn)問(wèn)題或丟失,那么BCD三臺(tái)的數(shù)據(jù)都會(huì)出現(xiàn)問(wèn)題并且丟失,為了保證A的數(shù)據(jù)一定是正確的,我們?cè)诟翧服務(wù)器之前,就要先對(duì)A做數(shù)據(jù)備份。下面是個(gè)簡(jiǎn)單的bat腳本,可以實(shí)現(xiàn)數(shù)據(jù)的自動(dòng)備份并上傳至FTP服務(wù)器,可以把它加入到任務(wù)計(jì)劃里面定期執(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)容請(qǐng)搜索腳本之家以前的文章或繼續(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ù)器文件定時(shí)同步備份(附錯(cuò)誤處理方法)
- 用cwrsync同步windows下數(shù)據(jù)的簡(jiǎn)單配置方法
- Windows rsync服務(wù)器備份配置實(shí)例
- windows2008系統(tǒng)中rsync計(jì)劃任務(wù)返回0x1問(wèn)題處理
相關(guān)文章
IIS卸載后重裝時(shí)提示:安裝程序無(wú)法復(fù)制一個(gè)或多個(gè)文件 特定錯(cuò)誤碼是 0xe0000233
今天由于iis出現(xiàn)錯(cuò)誤,以為是iis錯(cuò)誤就卸載了iis,在安裝過(guò)程中碰到了一些問(wèn)題,特將解決思路給大家分享下。2011-08-08解決IIS不識(shí)別PUT和DELETE請(qǐng)求
這篇文章介紹了解決IIS不識(shí)別PUT和DELETE請(qǐng)求的方法,對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來(lái)一起學(xué)習(xí)學(xué)習(xí)吧2022-03-03windows2003 apache配置虛擬主機(jī)和綁定域名服務(wù)
年前就找朋友申請(qǐng)一個(gè)域名,由于工作比較忙也沒(méi)弄,昨天下午在搞apache虛擬主機(jī)配置,試了很多次就是不行,不知道怎么搞。今天上午終于找到原因了。。。。。。。。。自己太粗心了,忘了一個(gè)設(shè)置。實(shí)在慚愧啊!2009-02-02在dell PowerEdge 2950上安裝win2003 server的方法介紹
本文介紹下,在dell PowerEdge 2950上,安裝windows 2003 server的方法,以及遇到的一些問(wèn)題與解決方法,有遇到類似問(wèn)題的朋友,可以參考下2013-05-05IIS 應(yīng)用程序池 CPU 100% 分析軟件,找出具體有問(wèn)題的ASP程序URL
一個(gè) IIS 6.0 / 7.0 服務(wù)器上可能存在著100-300個(gè)WEB站點(diǎn),如果其中一個(gè)站點(diǎn)的ASP程序設(shè)計(jì)存在問(wèn)題,那么將會(huì)引起CPU 持續(xù)占用100%,從而引起同一個(gè)服務(wù)器其他站點(diǎn)不能正常工作,或訪問(wèn)緩慢。2009-04-04