在Windows中配置Rsync同步文件的方法
Rsync是一款不錯的文件免費同步軟件,可以鏡像保存整個目錄樹和文件系統(tǒng),同時保持原來文件的權(quán)限、時間、軟硬鏈接。第一次同步時 rsync 會復(fù)制全部內(nèi)容,下次只傳輸修改過的文件部分。傳輸數(shù)據(jù)過程中可以實行壓縮及解壓縮操作,減少帶寬流量。支持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)在官方開始了收費版本,建議從腳本之家下載免費版本
- 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. 點擊服務(wù)端安裝程序進行安裝,安裝過程中提示輸入服務(wù)端程序以服務(wù)運行時的用戶名,密碼。可以自定義,也可以用默認(rèn)的用戶名密碼設(shè)置。
2. 安裝完成之后,進入程序安裝目錄根目錄,打開配置文件(如:C:\Program Files\ICW\rsyncd.conf ),進入配置。
默認(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 = * # 所有主機均可訪問
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 不驗證用戶密碼,
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īng)將密碼文件E:\Setting\Rsync\rsync_db.ps的權(quán)限加入Rsycn服務(wù)運行服務(wù)的用戶名 cwRsyncServer 的讀取權(quán)限 及 設(shè)置其為該文件為所有者。

4. 在服務(wù)管理器中,找到服務(wù) RsyncServer 服務(wù),并啟動服務(wù)。
5. 如果開啟了防火墻,則防火墻規(guī)則中要添加Tcp端口 28950 允許通信。

6. 服務(wù)驗證,打開dos命令框,輸入telnet 192.168.1.20 28950 (如果沒有安裝telnet服務(wù)端與客戶端,請在控制面板->添加刪除程序->打開關(guān)閉windows功能中找到Telnet客戶端和服務(wù)端,勾選進行安裝)。如果telnet能成功連接,出現(xiàn)@RSYNCD: 30.0 等類似文字,則說明服務(wù)啟動正常。

二、安裝配置 Rsync 客戶端
1. 安裝Rsync客戶端程序,直至安裝完成。
2. 測試服務(wù)器Rsync的連通性。在Rsync客戶端所在計算機telnet Rsync服務(wù)端所在計算的相應(yīng)地址和端口
telnet 192.168.1.20 28950
出現(xiàn)@RSYNCD: 30.0 等類似文字,則說明客戶端連接服務(wù)端正常。

3. 打開Dos命令窗口,進到Rsync客戶端安裝目錄的bin目錄下,如:C:\Program Files\cwRsync\bin\。輸入以下命令,開始進行同步:
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 # 顯示同步過程詳細信息--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),操作有點不一樣。
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 傳輸進度;
-v verbose,詳細模式輸出;
-u是只同步已經(jīng)更新的文件,避免沒有更新的文件被重復(fù)更新一次,不過要注意兩者機器時鐘的同步;
--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]
解決:密碼錯誤,輸入正確的密碼即可。用戶名和密碼如果都正確,可能是遠程rsync服務(wù)器的帳戶密碼文件的權(quán)限必須為600。
錯誤6: password file must not be other-accessible
解決:這是因為rsyncd.pwd rsyncd.sec的權(quán)限不對,應(yīng)該設(shè)置為600。如:chmod 600 rsyncd.pwd, Windows下應(yīng)將密碼文件的所有者改成程序運行的用戶。
錯誤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)]開機、防火墻阻擋、通過的網(wǎng)絡(luò)上有防火墻阻擋,都有可能。關(guān)閉防火墻,其實就是把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ù)?!?/p>
解決方法:將安裝目錄下的rsyncd.pid文件刪除,再重新啟動RsyncServer服務(wù)。一般是異常關(guān)機導(dǎo)致的。
為了省事腳本之家小編直接寫了一個批處理,定時檢查rsync服務(wù)器端有沒有運行,沒有就運行即可。
@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ù)器?,F(xiàn)在有個問題,當(dāng)A的數(shù)據(jù)出現(xiàn)問題或丟失,那么BCD三臺的數(shù)據(jù)都會出現(xiàn)問題并且丟失,為了保證A的數(shù)據(jù)一定是正確的,我們在更新A服務(wù)器之前,就要先對A做數(shù)據(jù)備份。下面是個簡單的bat腳本,可以實現(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實現(xiàn)windows與linux文件同步的方法
- windows下rsync的數(shù)據(jù)同步安裝配置方法
- cwrsync 四步實現(xiàn)windows備份
- windows下使用cwRsync定期備份網(wǎng)站(服務(wù)器文件同步)
- cwrsync實現(xiàn)從linux到windows的數(shù)據(jù)同步備份
- 使用cwRsync實現(xiàn)windows下服務(wù)器文件定時同步備份(附錯誤處理方法)
- 用cwrsync同步windows下數(shù)據(jù)的簡單配置方法
- Windows rsync服務(wù)器備份配置實例
- windows2008系統(tǒng)中rsync計劃任務(wù)返回0x1問題處理
相關(guān)文章
Winows Server 2019 激活碼&批量授權(quán)版KMS安裝密鑰GVLK
這篇文章主要介紹了Winows Server 2019 激活碼&批量授權(quán)版KMS安裝密鑰GVLK,本文給大家介紹的非常詳細,具有一定的參考借鑒價值,需要的朋友可以參考下2019-06-06
Win2003服務(wù)器系統(tǒng)故障、停止錯誤的原因與解決方法
這篇文章主要介紹了Win2003服務(wù)器中遇到的系統(tǒng)故障、停止錯誤的原因與解決方法,希望可以幫助需要的朋友2023-09-09
Windows Server 2016+Sql Server 2016搭建Alw
AlwaysOn是SqlServer實現(xiàn)高可用的解決方案之一,需要部署在Windows故障轉(zhuǎn)移集群(WSFC)上,Windows集群中每個節(jié)點上開啟了AlwaysOn的SQLServer應(yīng)用組成了SQLServer集群2023-05-05
windows服務(wù)器維護經(jīng)驗小結(jié)(rsync,serv_u)
這篇文章是腳本之家在維護多臺win2003服務(wù)器的時候,經(jīng)常用到的一些配置方法與bat,主要是rsync文件同步配置,serv_u經(jīng)常停止,sqlserver數(shù)據(jù)庫壓縮問題2013-05-05
實現(xiàn)在Windows下安裝Lighttpd的方法
逛javaeye時,看到大牛們推薦使用lighttpd Web服務(wù)器,如是下載下來安裝嘗試了一把。2008-08-08
通過網(wǎng)站統(tǒng)計或系統(tǒng)監(jiān)視器查看IIS并發(fā)連接數(shù)
如果要查看IIS連接數(shù),最簡單方便的方法是通過“網(wǎng)站統(tǒng)計”來查看,“網(wǎng)站統(tǒng)計”的當(dāng)前在線人數(shù)可以認(rèn)為是當(dāng)前IIS連接數(shù);如果要想知道確切的當(dāng)前網(wǎng)站IIS連接數(shù)的話,最有效的方法是通過windows自帶的系統(tǒng)監(jiān)視器來查看2013-01-01
IIS7使用.NET Framework v4.0運行庫報500錯誤的解決辦法
這篇文章主要介紹了IIS7使用.NET Framework v4.0運行庫報500錯誤的解決辦法,需要的朋友可以參考下2014-04-04
關(guān)于windows?server?2012?DC?環(huán)境?重啟后藍屏代碼:0xc00002e2的問題
這篇文章主要介紹了windows?server?2012?DC?環(huán)境?重啟后藍屏藍屏代碼:?0xc00002e2?,解決方法是通過進入目錄修改,查找ntds.dit問題,需要的朋友可以參考下2022-05-05
IIS7/iis7.5 HTTP Error 500.19 配置錯誤由于權(quán)限不足而無法讀取配置文件的解決辦法
這篇文章主要介紹了IIS7/iis7.5 配置錯誤由于權(quán)限不足而無法讀取配置文件的解決辦法 ,需要的朋友可以參考下2016-06-06

