rsync是Linux系統下的資料鏡像備份工具,從軟體的命名上就可以看出來了——remote sync。rsync支援大多數的類Unix系統,無論是Linux、Solaris還是BSD上都經過了良好的測試。rsync的最新版本可以從http://rsync.samba.org/rsync/獲得。它的特性如下:
1、可以鏡像儲存整個分類樹和檔案系統。
2、可以很容易做到保持原來檔案的許可權、時間、軟永久連結等等。
3、無須特殊許可權即可安裝。
4、最佳化的流程,檔案傳輸效率高。
5、可以使用rcp、ssh等方式來傳輸檔案,當然也可以通過直接的socket串連。
本文介紹了如何使用rsync服務從Linux到Windows進行遠程備份。
一、設定管理員端
首先我們需要配置rsync,開啟設定檔/etc/xinetd.d/rsyncd.conf(如果沒有請建立它),修改相應的配置項,並增加以下內容:
uid = nobody # 備份以什麼身份進行,使用者ID
gid = nobody # 備份以什麼身份進行,組ID
#注意這個使用者ID和組ID,如果要方便的話,可以設定成root,這樣rsync幾乎就可#以讀取任何檔案和目錄了,但是也帶來安全隱患。建議設定成只能讀取你要備
#份的目錄和檔案即可。
max connections = 4 # 最大串連數為4
[www] # 指定認證的備份模組名
path = /www # 需要備份的目錄
comment = BACKUP WWW # 注釋
ignore errors # 忽略一些無關的IO錯誤
read only = yes # 設定為唯讀
list = no # 不允許列檔案
auth users = wwwuser # 認證的使用者名稱,如果沒有這行,則表明是匿名
hosts allow=220.122.133.31 #允許串連伺服器的主機IP地址
secrets file = /etc/wwwuser.pass # 認證檔案名稱,用來存放密碼
這一段我們修改完成。
注意:如果同時還需要備份其它目錄的話,可以直接在設定檔的後面繼續增加配置內容,例如:
[database]
path = /var/lib/mysql
……
這樣就可以同時備份多個目錄了。
然後為備份模組設定密碼檔案,如上例的密碼檔案為/etc/wwwuser.pass,使用編輯器建立這個檔案,並輸入使用者名稱稱和密碼:
vi /etc/wwwuser.pass
輸入以下內容:
wwwuser:123456
這樣,為備份模組www的使用者wwwuser設定了密碼123456。注意,出於安全目的,這個檔案的屬性必需是只有屬主可讀,否則rsync將拒絕運行。我們可以設定它的屬性為600:
chmod 600 /etc/wwwuser.pass
設定rsync服務在系統啟動時自動啟動運行,可以通過ntsysv來設定:
最後在伺服器端我們需要啟動rsync服務:
service xinetd restart
至此,伺服器端配置完畢。
二、配置用戶端
為了在Windows環境使用rsync工具,我們需要去下載cwRsync工具,這是一個rsync for windows的版本。
下載安裝完成之後的目錄結構類似所示:
現在我們可以在Windows環境下運行rsync工具了,舉例使用下面的命令串連伺服器並開始備份目錄和檔案:
rsync -vzrtopg --progress --delete wwwuser@xx.xx.xx.xx::www .\bak
應該可以看到:
password:
要求輸入密碼的提示,正確輸入密碼後就應該看到開始備份了。當然,也有可能出現類似下面的錯誤資訊:
引起這種錯誤有幾種可能性,一是你沒有輸入正確的使用者名稱或密碼,二是你的伺服器端儲存密碼的檔案沒有正確的許可權,也就是你的密碼檔案不是類似這樣子的許可權:-rw------- 1 root root
在備份完成之後,我們可以看到類似所示的狀態: