使用Rsync進行伺服器的備份
一、環境:
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,否則客戶端將不能連接伺服器.
該選項指定哪些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 root@128.1.30.150::www
五、windows客戶端
下載cwRsyncServer_4.0.6_Installer.zip,在客戶端機器安裝,在計算機管理中啟動服務.
1、 建立密碼文件,我放在了c:rsyncd.ps
2、 進入dos,參考以下:
3、 可以寫一個批處理文件,然後使用計劃任務定期執行
[火星人 ] 使用Rsync進行伺服器的備份已經有899次圍觀