標籤:des style blog http color io os 使用 ar
眾所周知,Linux系統可以用rsync來實現檔案或目錄的同步,windows系統下也一樣可以。我們現在就用cwRsync來實現windows server 2008系統下的檔案同步。
一、系統內容作業系統:Windows server 2008 R2更新原始伺服器:192.168.0.108目的伺服器:192.168.0.132服務端:cwRsyncServer_4.1.0_Installer用戶端:cwRsync_4.1.0_Installer二、更新原始伺服器安裝配置(cwRsync服務端)1. 雙擊cwRsyncServer_4.1.0_Installer.exe開啟安裝介面,然後就一路下一步,安裝cwRsync服務端預設有一個系統管理員帳戶SvcCWRSYN,可自行設定使用者名稱和密碼。
2. 修改RsyncServer的設定檔(C:\Program Files (x86)\ICW\rsyncd.conf)
- use chroot = false #不使用chroot
- strict modes = false #靜態模式
- hosts allow = * #配置全域哪些IP可以訪問
- log file = rsyncd.log #log檔案名稱,可以指定路徑
- pid file = rsyncd.pid
- port = 8173 #預設連接埠873
- uid = 0 #不指定uid,不加這一行將無法使用任何賬戶
- gid = 0 #不指定gid
- max connections = 10 #最大串連數10
- lock file = rsyncd.lock
- # Module definitions
- # Remember cygwin naming conventions : c:\work becomes /cygwin/c/work
- #
- [test]
- path = /cygdrive/f/xuad #需要同步的路徑(F:\xuad目錄)
- read only = false #唯讀許可權
- transfer logging = yes #記錄傳輸日誌
- ignore errors #忽略無關的IO錯誤
- list = no #不列檔案表
- hosts allow = 192.168.0.132/255.255.255.0 #允許訪問的IP地址
- hosts deny = * #不允許hosts allow以外的任何IP訪問
3. 安裝完成後,在“服務”裡面就可以看到cwRsync對應的服務了,安裝完成後需要手動啟動該服務。將RsyncServer的啟動方式設定成自動,然後啟動該服務。註:針對需要同步的目錄,別忘記給SvcCWRSYNC使用者讀取的許可權。
4. 用netstat –anp tcp查看8173連接埠是否已監聽,在用戶端伺服器telnet 192.168.0.108 8173看連接埠是否已通。
三、目的伺服器安裝配置(cwRsync用戶端)
1. 雙擊cwRsync_4.1.0_Installer.exe開啟安裝介面,然後一路下一步,直到安裝完成。
2. 手動測試同步
在路徑C:\Program Files\cwRsync\bin下輸入rsync.exe -avzP --progress –delete rsync://192.168.0.108:8173/test /cygdrive/f/xuad,出現如資訊說明同步成功。
參數說明
-a 參數,相當於-rlptgoD,
-r 是遞迴
-l 是連結檔案,意思是拷貝連結檔案;
-p 表示保持檔案原有許可權;
-t 保持檔案原有時間;
-g 保持檔案原有使用者組;
-o 保持檔案原有屬主;
-D 相當於塊裝置檔案;
-z 傳輸時壓縮;
-P 傳輸進度;
-v verbose,詳細模式輸出;
-u是只同步已經更新的檔案,避免沒有更新的檔案被重複更新一次,不過要注意兩者機器時鐘的同步;
--progress 顯示備份過程;
--delete 刪除那些DST中SRC沒有的檔案,用作同步檔案用;
3.定時自動更新配置
(1)編寫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%
(2)設定計劃任務(每5分鐘同步一次)
開始-管理工具-工作排程器
右擊“工作排程器本地”,開啟建立任務介面。輸入姓名(任務名稱),選擇啟動任務的帳戶,選中“不管使用者是否登入都要運行”。
點擊“觸發器”-“建立”,開啟建立觸發器介面。按進行設定,每5分鐘同步一次。
點擊“操作”-“建立”,開啟建立操作介面。按進行設定,選擇之前編輯好的bat指令碼,然後“確定”。
“條件”和“設定”均使用預設設定,然後“確定”,輸入運行此任務的使用者帳戶的密碼,點擊“確定”,建立任務計劃完成。
四、測試中出現的錯誤
1. 命令輸入錯誤
紅框標記出來的地方應該是rsyncd.conf檔案裡的模組名,而不是同步目錄名。2.防火牆阻止了此連接埠
需要在防火牆的入站規則裡添加一條允許此連接埠的規則。
五、重要說明 對於多台伺服器做檔案同步,最好是連同資料備份一起做了。舉個例子:有A、B、C、D四台伺服器,需要保證四台伺服器一個或多個目錄的資料一致性,也就是 BCD需要從A上同步一個或多個目錄的資料,那麼A就是更新原始伺服器,BCD就是目的伺服器。現在有個問題,當A的資料出現問題或丟失,那麼BCD三台的 資料都會出現問題並且丟失,為了保證A的資料一定是正確的,我們在更新A伺服器之前,就要先對A做資料備份。下面是個簡單的bat指令碼,可以實現資料的自 動備份並上傳至FTP伺服器,可以把它加入到任務計劃裡面定期執行它。Backup.bat指令碼內容如下:
- @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%
參考文獻:http://kerry.blog.51cto.com/172631/753232特此感謝這位作者,謝謝!
本文出自 “風中流浪” 部落格,請務必保留此出處http://andyxu.blog.51cto.com/2050315/994772
配置Windows server 2008檔案同步[轉]