摘要:備份數據是一項重要的工作,有很多備份的方法和軟件。該文介紹了Windows間利用cwRsync進行數據同步備份的具體方法。
關鍵詞:cwRsync;同步;備份;SSH
中圖分類號:TP393文獻標識碼:A文章編號:1009-3044(2008)23-1082-02
Window CwRsync Use to Achieve Data Synchronization between the Backup
WANG Xiang-wei
(Guilin University of Technology,Guilin 541004,China)
Abstract:Backup data is an important task,there are many methods and backup software.This paper introduced the concrete method of Carries on the data synchronization backup using cwRsync between windows.
Key words: cwRsync; synchronization; backup; SSH
1 cwRsync簡介
數據備份可防止因存儲設備損壞造成的損失,是管理員一項重要的工作,實現數據遠程備份很多方法,最簡單的方法就是使用 FTP 或類似工具或腳本, 但是這種方法每次都需要將所有文件和數據都重新在網絡上傳輸一遍, 而不考慮哪些文件是新增的或更新的,因此效率非常低下,在備份數據量很大時,需要花費更長的時間在網絡上進行數據傳輸。實現數據遠程備份或建立網站鏡像的第二種方法是選擇商業化的備份和鏡像產品, 但這些產品的價格往往過于昂貴,這里介紹一種Windows下實現遠程數據同步/備份的自由軟件cwRsync。
cwRsync是Rsync的Windows版本,同Rsync一樣是一個遠程數據同步/備份工具,可通過LAN/WAN快速同步多臺主機間的文件。它使用“Rsync演算法”來使本地和遠程兩個主機之間的文件達到同步,這個算法只傳送兩個文件的不同部分,而不是每次都整份傳送,因此速度相當快。cwRsync的基本特點如下:
1)可以鏡像保存整個目錄樹和文件系統;
2)可以很容易做到保持原來文件的權限、時間等信息;
3)優化的流程,文件傳輸效率高;
4)可以使用RCP、SSH等方式來傳輸文件,也可以通過直接的socket連接;
5)支持匿名和認證傳輸。
2 配置使用cwRsync
假設有兩條服務器,名字分別為ServerA和ServerB。ServerA的IP為172.16.0.1,作為備份服務器。ServerB的IP為172.16.0.2,為需要備份的服務器,需要將ServerB服務器的D:\\www目錄備份到ServerA服務器上。首先去http://www.itefix.no/cwrsync/網站下載最新的服務器端和客戶端安裝文件。
2.1 配置cwRsync Server
1)在備份服務器ServerA上安裝cwRsync Server,路徑為:C:\\Program Files\\cwRsyncServer,如果需要通過ssh實現主機間加密文件傳輸,安裝時需要選中“OpenSSH Server”,安裝結束后在系統服務里將會增加兩個服務:RsyncServer和Openssh SSHD。
2)接下配置cwRsync Server,通過編輯C:\\Program Files\\cwRsyncServer\\ cwRsyncServer
rsyncd.conf文件來完成配置工作,它控制認證、 訪問、日志等。下面是一個配置文件樣例:
use chroot = 1
strict modes = 1
hosts allow = *
log file = rsyncd.log
pid file = rsyncd.pid
[www]
path = /cygdrive/d/backup/www/
read only = 1
transfer logging = yes
auth users =user1,user2
secrets file =rsyncd.secrets
hosts allow項指定哪些IP的客戶允許連接Rsync服務。可以是以下形式:
單個IP地址,例如:192.167.0.1
整個網段,例如:192.168.0.0/24,也可以是192.168.0.0/255.255.255.0
多個IP或網段需要用空格隔開,“*”則表示所有,默認是允許所有主機連接log file項設置存儲日志文件的路徑。
[www]行及以下定義了一個模塊,在一個配置文件中可以定義多個模塊,每個模塊都可以有自己的參數,在該模塊中:
path項定義了該模塊存儲文件的磁盤路徑(cwRsync將所有磁盤分區映射為/cygdrive/x/的形式,即分區C:轉換為/cygdrive/c/,以此類推)。
Read Only項定義目錄是否只允許讀,默認為False;
auth users項定義認證的用戶名列表user1和user2;
secret file項定義存儲密鑰的文件為/cygdrive/etc/rsyncd.secrets,該文件內容如下:
user1:password1
user2:password2
到此cwRsync Server配置完成,在服務中開啟“RsyncServer”服務。
2.2 使用cwRsync Client
在ServerB上運行client安裝文件,安裝到默認路徑:C:\\Program Files\\cwRsync。
在C:\\Program Files\\cwRsync目錄下建立一個rsync.pass文件,內容為“password1”,與ServerA的rsyncd.secret文件中user1的密碼對應。在ServerB上運行下命令來完成d:\\www到ServerA的同步備份:
rsync -av --delete --password-file=rsync.pass /cygdrive/d/www/ user1@172.16.0.1::www
-av中的a表示存檔模式,v表示顯示詳細信息;
--delete表示同步刪除文件,保持數據的一致性;
--password-file指定使用user1認證時的密碼文件;
/cygdrive/d/www/指定了備份的源文件夾,即d:/www/。
user1@172.16.0.1::www指定使用user1用戶名進行認證,目標服務器為172.16.0.1,目標模塊為www。
2.3 使用SSH通道傳輸文件
如果需要通過ssh方式來傳輸文件,需要配置Openssh通過Public-Key方式認證,配置過程如下:
1)在ServerA執行“開始─所有程序─cwRsync Server-05. Start a Unix BASH Shell”,執行之后,會出現一個命令行窗口;
2)在$提示符下執行命令:bin/activate-user.sh;系統出現提示信息:Do you want to activarte a (l)ocal or a (d)omain user [l/d]?,此時按小寫的l;
3)在出現提示信息“Enter a user account for activation:”后輸入SvcwRsync或其他列出的帳號。接下來出現的信息都可直接按Enter跳過了。
4)在服務中啟動“Openssh SSHD”服務。
5)將C:\\Program Files\\cwRsyncServer\\var\\SvcwRsync\\.ssh\\cwrsync私鑰文件拷貝到ServerB的C:\\Program Files\\cwRsync\\目錄下并在該目錄下建一個批處理文件backup.bat,具體內容如下:
@ECHO OFF
SET SECHAW_IDENTITY=\"C:\\Program Files\\cwRsync\\cwrsync\"
SET SECHAW_TYPE=ssh
SET SECHAW_LOCALPORT=9119
SET SECHAW_SERVER=172.16.0.1
SET SECHAW_SERVERPORT=873
SET SECHAW_USER=SvcwRsync
SET RSYNC_PASSWORD=password1
SET SECHAW_CMD=\"C:\\Program Files\\cwRsync\\bin\\rsync.exe\" -av/cygdrive/d/www/rsync://user1@localhost:9119/test
SET SECHAW_TUNNEL=ssh -i \"C:\\Program Files\\cwRsync\\bin\\SvcwRsync\" -L 9119:127.0.0.1:873 SvcwRsync@202.193.85.189 -T -N
\"C:\\Program Files\\cwRsync\\bin\\sechaw.exe\" –verbose
6)執行backup.bat即可通過SSH通道來完成數據的同步備份工作。
3 結束語
批處理文件結合“任務計劃”可完成服務器端數據的定時自動同步、備份,對于有大量服務器數據需要備份的管理員來說,可以大大減少工作量,并可較少手工備份可能帶來的錯誤或數據不一致;對于重要的數據,可通過SSH加密傳輸提高安全性,防止數據被截獲或篡改。總之cwRsync部署簡單,易用,而且是免費軟件,可大大節約備份成本,對于中小企和高校的數據備份具有一定的實用性。
參考文獻:
[1] 孫東奇,王秀梅.用Rsync實現Linux文件系統備份[J].教育信息化,2006,(2):35-36
[2] 曾鳴等.基于ssh、rsync和磁盤陣列的郵件數據備份.重慶工學院學報(自然科學版),2007,(06):106-109.
[3] 應用rsync輕松備份數據[N].每周電腦報,2006-06-05:33-34.