眾所周知,Linux系統可以用rsync來實現文件或目錄的同步,windows系統下也一樣可以。我們現在就用cwRsync來實現windows server 2008系統下的文件同步。
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. 命令輸入錯誤
- @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://andyxu.blog.51cto.com/2050315/994772