1. 程式人生 > >在多臺Windows主機間使用cwRsync來 同步/備份/傳送 檔案

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

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

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

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

你需要在一臺計算機上安裝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 [email protected]::test/ /cygdrive/"D/Program Files/test"

rsync.exe -ravz --progress --password-file=/cygdrive/f/rsync/pass_file [email protected].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的更多配置選項,此處絕對不可能描述得完,請參考其手冊。

相關推薦

Windows主機使用cwRsync 同步/備份/傳送 檔案

注:轉載請註明出處,並請保持文章的完整性。 如果你有多臺計算機,並且你希望它們的某些目錄保持一致(例如,你經常更改檔案的目錄),那麼如果用手工複製、貼上的方法,就太沒有效率了,資料夾多的話,能把你累個半死。所以,使用一些同步軟體是極其重要的。 在這裡,向你推薦rsync。

個人電腦的資料同步

相信很多人都在同時使用多臺計算機:家裡,辦公室,或者其它祕密地方。當然就算現在沒有多臺電腦,將來也會有的。 多臺電腦對應多個硬碟,也對應著多個資料夾。如何進行資料同步是很多人頭痛的問題,完全靠 U 盤來同步,時間長了根本無法記得哪個版本最新,哪個版本需要修

關於解決linux伺服器檔案實時同步問題

  最近要做一個相關的解決方案,在虛擬機器測試沒有問題。給大家分享出來,有更好的解決方案,歡迎討論。 1.1 inotify相關介紹      1、rsync        與傳統的cp、ta

docker 實戰---物理主機的聯網,容器橋接到物理網絡

容器橋接到物理網絡docker 默認的橋接網卡是docker0它只會在本機橋接所有的容器網卡,舉例來說容器的虛擬網卡在主機上看一般叫做veth*** 而docker只是把所有這些網卡橋接在一起,如veth2a4c51b:[root@docker1 ~]# brctl showbridge name br

WMI實現遠端監控windows伺服器

簡介 WMI簡介: WMI(Windows Management Instrumentation,Windows 管理規範)是一項核心的 Windows 管理技術;使用者可以使用 WMI 管理本地和遠端計算機。 WQL簡介: WQL就是WMI中的查詢語言,WQL的全稱是WMI Que

xampp配置虛擬主機

1.開啟apache的配置檔案 httpd.conf下面:Include conf/extra/httpd-vhosts.conf 去掉前面註釋 2.新增監聽埠 #Listen 12.34.56.78

17 :物理機的容器連線

兩臺物理主機,docker官方推薦瞭如下方式連線兩個容器。 以下以wordpress+mysql的服務為例。 部署在兩臺機器上的wordpress和mysql通過一對ambassador進行連線。 wordpress(in vm1)--link-->ambass

linux主機互傳檔案的解決辦法

1.針對虛擬機器中裝Linux的情況。 主機上裝一個類似XManager的工具,裡面的Xftp可以在主機和虛擬機器之間傳輸檔案。利用主機作為中轉站,可以實現linux主機中檔案傳輸。 2.要求在linux中實現 利用scp命令,它可以實現兩臺linux主機間檔案安全

Windows下利用cwRsync批量同步檔案(4.1.0版本)

      前段時間寫了一篇linux下利用rsync批量更新的文章,網遊公司windows伺服器還是很多的,今天就來講講windows下批量更新的方法,windows下同步資料利用cwRsync來完成的一、系統環境windows 2003 R2 sp2  更新源伺服器:10

通過vCenter Server管理ESXi主機

通過vCenter Server管理多臺ESXi主機    通過前面3章的介紹,已經對虛擬化有一定的瞭解,不過那都是一些基礎的東西,在實際運用中沒什麼意義。從這章開始將正式踏入虛擬化技術的核心部分;隨著時間推移,所學知識越來越深。 將多臺ESXi主機加入vCenter Se

Linux伺服器和Windows本地scp命令上傳下載檔案的使用

scp上傳下載的使用 |-在Linux上安裝ssh | |-安裝SecureCRT,進行遠端連線Linux | |-在Windows上安裝Winsshd使得Windows支援ssh協議,並開啟wins

java執行緒網路伺服器端向客戶端傳送檔案

tcpServer.java package com.tcp.server; import java.io.IOException; import java.net.ServerSocket; im

Linux主機配置SSH免密登陸

包含 生成 目錄 apt 裏的 html .cn 密碼 查看 1.安裝ssh. sudo apt-get install ssh. 安裝完成後會在~目錄(當前用戶主目錄,即這裏的/home/xuhui)下產生一個隱藏文件夾.ssh(ls -a 可以查看隱藏文件)。如果沒有

關於解決伺服器檔案實時同步問題

      最近要做一個相關的解決方案,在虛擬機器測試沒有問題。給大家分享出來,有更好的解決方案,歡迎討論。 1.1 inotify相關介紹      1、rsync        與傳統的cp、tar備份方式相比,rsync具有安全性高、備份迅速、支援增量備份等優點,通

如何實現Linux伺服器檔案雙向同步

Linux系統間檔案雙向同步搭建Unison版  一、Unison簡介  Unison是Windows、Linux以及其他Unix平臺下都可以使用的檔案同步工具,它能使兩個資料夾(本地或網路上的)保持內容的一致。Unison擁有與其它一些同步工具或檔案系統的相同的特性,但也有自身的特點:  1.跨平臺

Unison+inotify-tools實現Ubuntu主機機觸發式雙向同步

安裝OpenSSH        在各臺伺服器上安裝OpenSSH,使用如下命令:        sudo apt-get install openssh        該命令在你的機器上同時安裝了SSH Server和SSH Client。 安裝Unison

邁拓維矩遊戲同步器:一套鍵盤鼠標對電腦進行同步操作

邁拓維矩 同步器 邁拓維矩遊戲同步器可以通過手動操作一套鼠標、鍵盤,即可對多臺電腦進行同步操作,比代理或外掛更加穩定、安全和可靠。在眾多大型遊戲中隨處可見邁拓維矩遊戲同步器的使用,如《地下城與勇士》、《征途》、《禦龍在天》、《夢幻西遊》、《永恒之塔》、《龍之谷》等,下面,由邁拓維矩帶領大家深入了

samba共享目錄主機掛載,搭建WordPress

搭建wordpress samba共享目錄多臺主機掛載 項目實踐一:(1) 使用samba共享/data/application/web,在目錄中提供wordpress; (2) 使用samba客戶端掛載samba server共享的目錄至/var/www/html;(3) 客戶端(lamp),部署w

C#使用互斥量(Mutex)實現進程並發操作時進程線程同步操作(進程同步)

互斥 空字符 示例 logfile format ror var mutex類 www 本文主要是實現操作系統級別的多進程間線程同步(進程同步)的示例代碼及測試結果。代碼經過測試,可供參考,也可直接使用。 承接上一篇博客的業務場景[C#使用讀寫鎖三行代碼簡單解決多線程並發

遠程給主機安裝軟件

自動化案例1:在物理機上編寫一個自動化批量管理服務器的腳本。要求用ssh命令遠程給3臺虛擬機全自動安裝vsftpd、ftp、lftp、tree、samba、tftp-server、bind、dhcp、httpd、mariadb-server軟件,用rpm -q查詢軟件是否已安裝,全自動啟動vsftpd、sm