在多台Windows主機間使用cwRsync來 同步/備份/傳送 檔案

來源:互聯網
上載者:User

註:轉載請註明出處,並請保持文章的完整性。

 

 

如果你有多台電腦,並且你希望它們的某些目錄保持一致(例如,你經常變更檔的目錄),那麼如果用手工複製、粘貼的方法,就太沒有效率了,檔案夾多的話,能把你累個半死。所以,使用一些同步軟體是極其重要的。

在這裡,向你推薦rsync。套用網上的解釋:rsync是在Linux和UNIX上廣泛使用的檔案傳輸和同步程式。此軟體相當強大,經過一些配置之後,可以讓你從此以後的同步備份工作變得極其簡單、輕鬆。該軟體有Windows下的版本,叫做cwRsync。官方對它的詮釋是:cwrsync - Rsync for Windows。

 

下載頁面:http://www.itefix.no/i2/download

你需要在一台電腦上安裝cwrsync的伺服器端軟體cwRsyncServer,在另一台電腦上安裝cwrsync的用戶端軟體。不過,由於伺服器端軟體已經包含了用戶端軟體的功能,所以,在我的實際使用中,我在多台電腦上均安裝了伺服器端軟體(軟體才幾M大,無所謂),我覺得這樣更方便,因為我的任何一台電腦都可以做為rsync伺服器來用。

 

安裝cwRsyncServer的過程中,會要求你設定一個使用者名稱和密碼,建議一定要更改,而不是使用預設的。你提供的這個使用者名稱和密碼將會在系統使用者中建立一個帳戶(在Windows登入介面可以看得到它的存在)。

由於rsync伺服器在Windows下是以服務的形式來啟動的,所以你在使用它之前,應該確認你的rsync服務是否已經啟動了。cwRsyncServer軟體對應的系統服務名字是RsyncServer,預設是不會自動啟動的。

 

下面說一下如何設定rsync伺服器以及用戶端,使得它們可以同步某一目錄下的檔案。

 

由於rsync是來自Linux/Unix,所以就算是Windows下的cwRsync,也頗有Linux rsync的風格,這種風格體現在,你還是需要去修改設定檔(一個文字檔)來對rsync伺服器進行設定,而沒有一個圖形介面來讓你用滑鼠點幾下就解決問題。

 

我們用記事本開啟cwRsyncServer安裝目錄下的rsyncd.conf檔案(這個檔案就是rsync伺服器的設定檔了),它定義了rsync伺服器的參數,服務啟動時會讀取該檔案內容,並用以初始化rsync服務。如果修改了參數,則需要重新啟動服務才會生效。

 

rsyncd.conf檔案已經有一部分預設內容,你可以參照下面的格式(不包括橫線),添加你所需要的參數:

 

port = 873                    # rsync服務的連接埠(873就是預設連接埠,你可以更改)
use chroot = false        # 預設,不更改
strict modes = false     # 預設,不更改
read only = yes            # 服務端檔案唯讀(不允許用戶端修改或刪除)
list = no                        # 不允許用戶端對伺服器端的檔案清單
hosts allow = *            # 允許串連伺服器的用戶端的IP地址清單(*表示不限制)
max connections = 10  # 最大串連數

uid=0                            # 對某些場合,這個很重要,下面再解釋
gid=0                            # 對某些場合,這個很重要,下面再解釋

auth users = ruser        # 允許串連伺服器的使用者名稱
secrets file = rsyncd.secrets   # 允許串連伺服器的帳戶檔案,其格式在下面會詳述
motd file = rsyncd.motd          # 歡迎資訊檔(用戶端串連時,服務將向用戶端發送歡迎資訊,其內容即為此檔案的內容)
log file = rsyncd.log                 # 記錄檔
lock file = rsyncd.lock              # 鎖檔案
transfer logging = yes            # 傳輸時記錄日誌

# Module definitions
# Remember cygwin naming conventions : c:/work becomes /cygwin/c/work
#

[test]            # 一個模組的名字,可隨意起,但最好有意義
path = /cygdrive/D/test   # 同步的目錄的路徑,其中,D盤就是“/cygdrive/D”,所以該路徑指的是D盤下的test目錄

 

[another]

path = /cygdrive/E/Documents and Settings/another

 

 

 

需要注意的幾點:

(1)你設定的rsync伺服器連接埠必須在防火牆裡開啟,否則用戶端還是串連不上。

(2)rsyncd.conf檔案中的模組上方是公用的參數,也就是所有模組都會共用的參數,如果在該模組內部又為該參數設定了不同的值,則會按模組內部的值來算。

(3)rsyncd.secrets檔案的內容格式如下:

使用者名稱:密碼

例如:

ruser:rupass

(4)一般來說,你要同步一個目錄的話,就要在rsyncd.conf中添加一個“模組”,並為該模組設定路徑等參數。

(5)如果用戶端串連rsync伺服器時,提示chdir失敗,並且你的登入使用者名稱和密碼之類的都設定對了,那麼很可能你就需要添加上面的“uid=0”和“gid=0”了,我就用這個解決了問題。

(6)在模組的路徑(path)中,經測試可以包含空格。

 

 

好了,伺服器端的設定基本完成,然後啟動rsync服務,就可以了。

 

下面我們來進行用戶端的工作,以完成同步任務。

前面說了,我在用戶端也裝了cwRsyncServer,因為它包含了用戶端的功能。

在用戶端,我們需要在命令列下執行一個帶許多參數的命令,以完成同步功能,正因為如此,我不可能在每次需要同步的時候,先cmd開啟命令列,然後再打長長的rsync命令來完成同步,否則也太痛苦了。所以我們可以寫一個批次檔(*.bat),來完成這個任務。批次檔的內容其實挺簡單:

 

 

 

cd d:/ICW/Bin
d:

rsync.exe -ravz --progress --password-file=/cygdrive/f/rsync/pass_file ruser@192.168.1.100::test/ /cygdrive/"D/Program Files/test"

 

 

rsync.exe -ravz --progress --password-file=/cygdrive/f/rsync/pass_file ruser@192.168.1.100::another/ /cygdrive/"E/another"

 

 

pause

 

 

 

說明:

(1)第一行表明切換到rsync程式所在目錄,請視實際情況更改。

(2)第二行表明切換到D盤(rsync程式所在的盤)。

(3)192.168.1.100是rsync伺服器IP,請視實際情況更改。

(4)--password-file 參數指定了用戶端登入伺服器時,使用的帳戶的密碼檔案,例如上面的“/cygdrive/f/rsync/pass_file” 表明是 F:/rsync/pass_file 檔案,該檔案內容就是登入rsync伺服器的帳戶的密碼。

(5)紅色的文字指定的是rsync伺服器設定檔中設定的模組名,必須一致。

(6)有多個目錄要同步,就寫多個rsync命令,雙擊此批次檔時,會依次執行。

(7)上面例子中的第一個rsync命令的含義是:將遠端rsync伺服器中,test模組所指定的目錄,同步到本地的 D/Program Files/test 目錄。在用戶端,如果路徑中含有空格,則需要將路徑用雙引號括起來(如上面的例子所示)。

 

 

這樣配置好之後,雙擊批次檔,你的兩個目錄就開始同步啦。以後,你就再也不用費勁地去手工同步檔案了,rsync會自動判斷哪些檔案修改了,哪些沒有修改,只傳輸修改過的檔案(並且還會增量傳輸),節省你的頻寬,極其高效。

 

rsync功能非一般強大,關於rsync的更多配置選項,此處絕對不可能描述得完,請參考其手冊。

 

相關文章

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.