<b>使用</b><b>Rsync</b><b>進行伺服器的備份</b>
一、環境:
OS: Centos5 /RHEL 5
Soft: rsync-3.0.7.tar.gz
Rsync是linux下的資料備份工具,支援linux—linux, linux—windows之間的互相備份。具有如下特性:
1、 可以鏡像儲存整個目錄樹和檔案系統
2、 可以很容易的做到儲存原檔案的權限、時間、軟硬連結等
3、 無須特殊權限即可安裝
4、 優化的流程、檔案傳輸效率高
5、 可以使用rcp、ssh等方式進行傳輸,也可以直接通過sock連接配接
二、安裝
下載下傳位址: http://rsync.samba.org 。
安裝和一般的軟體基本一樣,一般rhel5或centos已經安裝好了,我們可以先解除安裝後再自行安裝
Rpm –e rsync --nodeps
#tar -xzvf rsync-3.0.7.tar.gz
#cd rsync-3.0.7
#./configure –prefix=/usr/local/rsync
#make
#make install
注: 如果在兩台linux之間備份,這兩台linux都安裝rsync,分别配置為server和client,但是如果是linux和windows之間備份,則linux安裝rsync,windows系統安裝cwrsync。
三、配置rsync伺服器端
Rsync伺服器的配置檔案為/etc/rsyncd.conf,其控制認證、通路、日志記錄等。該檔案是一個或多個子產品結構組成,寫法非常類似samba的文法。一個子產品以方括号中的子產品名開始,知道下一個子產品定義開始或檔案結束,子產品中包含name=value的參數定義。每個子產品其實就對應需要備份的一個目錄樹,那麼就需要在配置檔案中定義三個子產品,分别對應三個目錄樹。
1、 配置rsync server
Vim /etc/xinetd.d/rsync
将disable=yes改為no

2、 假設我們要備份的目錄是/usr/local/www/ 目錄,那麼我們的配置檔案如下:
注意: 配置檔案為/etc/rsyncd.conf,預設是不存在的,需要我們自己來建立。
注釋:
全局參數
uid = root//運作RSYNC守護程序的使用者
gid = root//運作RSYNC守護程序的組
use chroot = 0 //不使用chroot
max connections = 0 // 最大連接配接數,0為不限制
port = 873//預設端口873
下面這些檔案是安裝完RSYNC服務後自動生成的檔案
pid file = /var/run/rsyncd.pid//pid檔案的存放位置
lock file = /var/run/rsync.lock //鎖檔案的存放位置。指定支援max connections參數的鎖檔案,預設值是/var/run/rsyncd.lock。
log file = /var/log/rsyncd.log//日志記錄檔案的存放位置
Timeout = 300
通過該選項可以覆寫客戶指定的IP逾時時間。通過該選項可以確定rsync伺服器不會永遠等待一個崩潰的用戶端。逾時機關為秒鐘,0表示沒有逾時定義,這也是預設值。對于匿名rsync伺服器來說,一個理想的數字是600。
Log format = %t %a %m %f %b
通過該選項使用者在使用transfer logging可以自己定制日志檔案的字段。其格式是一個包含格式定義符的字元串,可以使用的格式定義符如下所示:
%h 遠端主機名
%a 遠端IP位址
%l 檔案長度字元數
%p 該次rsync會話的程序id
%o 操作類型:" send" 或" recv"
%f 檔案名
%P 子產品路徑
%m 子產品名
%t 目前時間
%u 認證的使用者名(匿名時是null)
%b 實際傳輸的位元組數
%c 當發送檔案時,該字段記錄該檔案的校驗碼
預設log格式為:" %o %h [%a] %m (%u) %f %l" ,一般來說,在每行的頭上會添加" %t [%p] " 。在源代碼中同時釋出有一個叫rsyncstats的perl腳本程式來統計這種格式的日志檔案。
#transfer logging = yes //
使rsync伺服器使用ftp格式的檔案來記錄下載下傳和上載操作在自己單獨的日志中。
syslog facility = local3 //指定rsync發送日志消息給syslog時的消息級别,常見的消息級别是:uth, authpriv, cron, daemon, ftp, kern, lpr, mail, news, security, sys-log, user, uucp, local0, local1, local2, local3,local4, local5, local6和local7。預設值是daemon。
子產品參數
[www] //這裡是認證的子產品名,在client端需要指定
path = /home/backup///需要做鏡像的目錄,不可缺少!
comment = This is a test //這個子產品的注釋資訊
ignore errors//可以忽略一些無關的IO錯誤
read only = yes//該選項設定是否允許客戶上載檔案。如果為true那麼任何上載請求都會失敗,如果為false并且伺服器目錄讀寫權限允許那麼上載是允許的。預設值為true。
list = no //不允許列檔案
auth users =msyn //認證的使用者名,如果沒有這行則表明是匿名,此使用者與系統無關
該選項指定由空格或逗号分隔的使用者名清單,隻有這些使用者才允許連接配接該子產品。這裡的使用者和系統使用者沒有任何關系。如果" auth users" 被設定,那麼用戶端發出對該子產品的連接配接請求以後會被rsync請求challenged進行驗證身份這裡使用的challenge/response認證協定。使用者的名和密碼以明文方式存放在" secrets file" 選項指定的檔案中。預設情況下無需密碼就可以連接配接子產品(也就是匿名方式)。
secrets file = /etc/rsync.pas //密碼和使用者名對比表,密碼檔案自己生成
該選項指定一個包含定義使用者名:密碼對的檔案。隻有在" auth users" 被定義時,該檔案才有作用。檔案每行包含一個username:passwd對。一般來說密碼最好不要超過8個字元。沒有預設的secures file名,需要限式指定一個(例如:/etc/rsyncd.passwd)。注意:該檔案的權限一定要是600,否則用戶端将不能連接配接伺服器。
hosts allow = 192.168.1.1,10.10.10.10//允許主機或網段
該選項指定哪些IP的客戶允許連接配接該子產品。客戶模式定義可以是以下形式:
單個IP位址,例如:192.167.0.1
整個網段,例如:192.168.0.0/24,也可以是192.168.0.0/255.255.255.0
多個IP或網段需要用空格隔開,“*”則表示所有,預設是允許所有主機連接配接。
hosts deny = 0.0.0.0/0 //禁止主機
3、 建立認證檔案/etc/rsyncd.ps ,此檔案須與配置檔案中指定檔案名保持一緻
#vim /etc/rsyncd.ps
此處格式為:username:password,由于安全問題,并不建議實際使用中使用root使用者
并且我們需要設定此檔案的權限為600,
4、建立motd檔案(可有可無)
# vi /var/rsyncd.motd
rsyncd.motd記錄了rsync服務的歡迎資訊,你可以在其中輸入任何文本資訊,如:
Welcome to use the rsync services!
5、啟動rysnc
四、用戶端安裝
備份伺服器隻要安裝rsync就可以了,不需要啟動程序就可以了。下面為同步過程:
格式:
#rsync –vzrtopg –delete --progress username@IP::要備份的目錄 目錄2
--delete 是保持跟伺服器的目錄完全一緻
--progress
要備份的目錄:指的是配置檔案中的備份子產品名
目錄2:用戶端的用來保持備份檔案的目錄
如果要上傳的話,隻需要将位置颠倒即可,如:
/usr/local/rsync/bin/rsync -vzrtopg --delete --progress /root/backup [email protected]::www
五、windows用戶端
下載下傳cwRsyncServer_4.0.6_Installer.zip,在用戶端機器安裝,在計算機管理中啟動服務。
1、 建立密碼檔案,我放在了c:\rsyncd.ps
2、 進入dos,參考以下:
3、 可以寫一個批處理檔案,然後使用計劃任務定期執行