一、rsync簡(jiǎn)介
rsync是Linux系統(tǒng)下的數(shù)據(jù)鏡像備份工具,通過(guò)rsync可以將本地系統(tǒng)數(shù)據(jù)通過(guò)網(wǎng)絡(luò)備份到任何遠(yuǎn)程主機(jī)上,rsync有如下特性:
可以鏡像保存整個(gè)目錄樹(shù)和文件系統(tǒng)
可以增量同步數(shù)據(jù),文件傳輸效率高,因而同步時(shí)間很短。
可以保持原有文件的權(quán)限、時(shí)間等屬性。
加密傳輸數(shù)據(jù),保證了數(shù)據(jù)的安全性。
二、rsync的安裝與使用
接著我們通過(guò)實(shí)例詳細(xì)介紹下rsync的使用方法,這里我們假定有A、B兩個(gè)Linux系統(tǒng),A系統(tǒng)運(yùn)行業(yè)務(wù),B系統(tǒng)作為A的一個(gè)遠(yuǎn)程容災(zāi)備份機(jī),那么A系統(tǒng)就是rsync的服務(wù)端,B系統(tǒng)就是rsync的客戶端。需要在A、B兩個(gè)系統(tǒng)上都安裝rsync軟件,這樣,在A系統(tǒng)上運(yùn)行rsync守護(hù)進(jìn)程,而B(niǎo)系統(tǒng)可以通過(guò)系統(tǒng)守護(hù)進(jìn)程crontab來(lái)定時(shí)備份A系統(tǒng)上指定的數(shù)據(jù)。從而實(shí)現(xiàn)了數(shù)據(jù)的遠(yuǎn)程容災(zāi)。
我們的安裝環(huán)境為:
操作系統(tǒng):Red Hat Enterprise Linux Server release 5
內(nèi)核版本:Linux web 2.6.18-8.el5
A系統(tǒng)IP地址:192.168.60.253
B系統(tǒng)IP地址:192.168.60.231
1、在A、B兩個(gè)系統(tǒng)上安裝rsync
rysnc的主頁(yè)地址為:http://rsync.samba.org/,我們這里下載的版本為rsync-3.0.4,接著進(jìn)行編譯安裝:
[root@web ~]#tar zxvf rsync-3.0.4.tar.gz
[root@web ~]#cd rsync-3.0.4
[root@web rsync-3.0.4]# ./configure
[root@web rsync-3.0.4]# make
[root@web rsync-3.0.4]# make install
這樣就完成了rsync的安裝。
2、在A系統(tǒng)上配置rsync
rsync的配置文件為/etc/rsyncd.conf,在rsync安裝完畢,默認(rèn)是沒(méi)有這個(gè)文件的,我們手動(dòng)建立一個(gè)即可。rsyncd.conf文件是由一個(gè)或多個(gè)模塊結(jié)構(gòu)組成。該文件有全局參數(shù)和模塊參數(shù)組成,一個(gè)模塊定義從方括弧中的模塊名開(kāi)始,直到下個(gè)模塊的定義開(kāi)始。配置完畢的內(nèi)容如下:
uid = nobody
gid = nobody
use chroot = no
max connections = 10
pid file = /var/run/rsyncd.pid
lock file = /var/run/rsync.lock
log file = /var/log/rsyncd.log
[ixdba]
path = /webdata
comment = ixdba file
ignore errors
read only = true
list = false
uid = root
gid = root
auth users = backup
secrets file = /etc/server.pass
對(duì)上面每個(gè)選項(xiàng)的含義解釋如下:
? uid 此選項(xiàng)指定當(dāng)該模塊傳輸文件時(shí)守護(hù)進(jìn)程應(yīng)該具有的用戶ID,默認(rèn)值是“nobody”。
? gid 此選項(xiàng)指定當(dāng)該模塊傳輸文件時(shí)守護(hù)進(jìn)程應(yīng)該具有的用戶組ID。默認(rèn)值為“nobody”。
? max connections 此選項(xiàng)指定模塊的最大并發(fā)連接數(shù)量,以保護(hù)服務(wù)器,超過(guò)限制的連接請(qǐng)求,將被暫時(shí)限制。默認(rèn)值是0,也就是沒(méi)有限制。
? pid file 此選項(xiàng)用來(lái)指定rsync守護(hù)進(jìn)程對(duì)應(yīng)的PID文件路徑。
? lock file 此選擇指定支持max connections的鎖文件,默認(rèn)值是/var/run/rsyncd.lock。
? log file 此選項(xiàng)指定了rsync的日志輸出文件路徑。
? [ixdba] 表示定義一個(gè)模塊的開(kāi)始,ixdba就是對(duì)應(yīng)的模塊名稱。
? path 此選項(xiàng)用來(lái)指定需要備份的文件或目錄,必填項(xiàng),這里指定的目錄為/webdata。
? list 此選項(xiàng)設(shè)定當(dāng)客戶請(qǐng)求可以使用的模塊列表時(shí),該模塊是否被列出。默認(rèn)值是true,如果需要建立隱藏的模塊。可以設(shè)置為false。
? auth users 此選項(xiàng)用來(lái)定義可以連接該模塊的用戶名,多個(gè)用戶用空格或逗號(hào)分隔開(kāi)。需要注意的是這里的用戶和Linux系統(tǒng)用戶沒(méi)有任何關(guān)系。這里指定的用戶是backup。
? secrets file 此選項(xiàng)指定一個(gè)包含“用戶名:密碼”格式的文件,用戶名就是“auth users”選項(xiàng)定義的用戶,密碼可以隨便指定,只要和客戶端的secrets file對(duì)應(yīng)起來(lái)就行。只有在auth users被定義時(shí),該文件才起作用。系統(tǒng)默認(rèn)沒(méi)有這個(gè)文件,自己手動(dòng)創(chuàng)建一個(gè)即可。
3、在A系統(tǒng)上啟動(dòng)rsync守護(hù)進(jìn)程
執(zhí)行如下指令啟動(dòng)rsync守護(hù)進(jìn)程:
[root@web ~]# /usr/local/bin/rsync --daemon
[root@localhost /]# ps -ef|grep rsync
root 20278 1 0 16:29 ? 00:00:00 /usr/local/bin/rsync --daemon
4、在B系統(tǒng)上配置rsync
在備份機(jī)上不用做任何設(shè)置,只需執(zhí)行rsync同步操作即可,為了在同步過(guò)程中,不用輸入密碼,需要在B系統(tǒng)上創(chuàng)建一個(gè)secrets file,此文件的內(nèi)容為A系統(tǒng)rsyncd.conf文件中“auth users”選項(xiàng)指定用戶的密碼,而這個(gè)文件的名稱以及路徑可以隨意指定,只要在執(zhí)行rsync同步時(shí)指定即可。
接下來(lái)執(zhí)行同步操作,請(qǐng)看如下指令:
[root@web~]# /usr/local/bin/rsync -vzrtopg --delete --progress backup@192.168.60.253::ixdba/ixdba.net --password-file=/etc/server.pass
對(duì)這條指令中每個(gè)參數(shù)的含義介紹如下:
? “--vzrtopg”選項(xiàng)中v是“—verbose”,即詳細(xì)模式輸出,z表示“--compress” 即對(duì)備份的文件在傳輸時(shí)進(jìn)行壓縮處理,r表示“--recursive”,也就是對(duì)子目錄以遞歸模式處理。t即“--times”,用來(lái)保持文件時(shí)間信息,o即“--owner”用來(lái)保持文件屬主信息。p即“--perms”用來(lái)保持文件權(quán)限,g即“--group”用來(lái)保持文件的屬組信息。
? “--delete”選項(xiàng)指定以rsync服務(wù)端為基準(zhǔn)進(jìn)行數(shù)據(jù)鏡像同步,也就是要保持rsync服務(wù)端目錄與客戶端目錄的完全一致性。在這里也就是以A服務(wù)器為基準(zhǔn)進(jìn)行同步。
? “--progress”選項(xiàng)用于顯示數(shù)據(jù)鏡像同步的過(guò)程。
? “backup@192.168.60.253::ixdba” 表示對(duì)服務(wù)器192.168.60.253中的ixdba模塊進(jìn)行備份,也就是指定備份的模塊,backup表示使用“backup”這個(gè)用戶對(duì)該模塊進(jìn)行備份。
? “/ixdba.net”用于指定備份文件在客戶端機(jī)器上的存放路徑,也就是將備份的文件存放在備份機(jī)的/ixdba.net目錄下。
? “--password-file=/etc/server.pass”用來(lái)指定客戶機(jī)上存放的密碼文件位置,這樣在客戶端執(zhí)行同步命令時(shí)就無(wú)需輸入交互密碼了,注意,這個(gè)密碼文件的名稱和位置可以隨意指定,但是在客戶機(jī)上必須存在此文件,文件的內(nèi)容僅僅為備份用戶的密碼,這里指的是backup的密碼。
其實(shí)rsync作為客戶端工具,提供了很多的選項(xiàng)和參數(shù),這里我們僅僅給出了常用的一部分,更詳細(xì)的信息請(qǐng)執(zhí)行“man rsync”查看。
如果配置沒(méi)有錯(cuò)誤,接下來(lái)rsync將自動(dòng)去服務(wù)端(即A系統(tǒng))將需要備份的數(shù)據(jù)同步到客戶端(即B系統(tǒng))。rsync指令在客戶端執(zhí)行完成數(shù)據(jù)的同步后,將自動(dòng)停止,以后如果在服務(wù)端目錄下有新增數(shù)據(jù)時(shí),客戶端不會(huì)自動(dòng)將數(shù)據(jù)同步過(guò)去,此時(shí),還需要再次執(zhí)行rsync命令組合進(jìn)行數(shù)據(jù)同步,因此,rsync方式的數(shù)據(jù)備份是需要觸發(fā)同步指令才能完成。
觸發(fā)同步指令的方式有很多種,例如可以將同步指令放入客戶端系統(tǒng)的crontab守護(hù)進(jìn)程,設(shè)定同步時(shí)間,然后讓Linux去觸發(fā)同步指令,自動(dòng)完成數(shù)據(jù)備份。這種數(shù)據(jù)備份方式可以用于數(shù)據(jù)安全性要求不是很高的業(yè)務(wù)系統(tǒng)上。
細(xì)心的你可能發(fā)現(xiàn)了,在這種方式下,服務(wù)端和客戶端的數(shù)據(jù)在兩次同步的時(shí)間間隔內(nèi),可能出現(xiàn)不一致現(xiàn)象。而對(duì)于數(shù)據(jù)安全性要求極高的業(yè)務(wù)系統(tǒng),這種備份方式就不能滿足要求了,這些業(yè)務(wù)要求服務(wù)端和客戶端的數(shù)據(jù)要做到實(shí)時(shí)同步,不過(guò)幸運(yùn)的是,Linux內(nèi)核提供了inotify文件系統(tǒng)監(jiān)控機(jī)制,通過(guò)inotify與rsync的組合,完全可以做到rsync服務(wù)端和客戶端數(shù)據(jù)的實(shí)時(shí)同步。
至此,關(guān)于rsync的簡(jiǎn)單應(yīng)用,我們已經(jīng)做了一個(gè)簡(jiǎn)單的介紹,系統(tǒng)的備份與恢復(fù)是一個(gè)巨大的工程,要保證系統(tǒng)數(shù)據(jù)的安全性和穩(wěn)定性,需要做很多方面的工作。最后,套用一句話來(lái)說(shuō)明備份的重要性:“備份不是萬(wàn)能的,但是沒(méi)有備份是萬(wàn)萬(wàn)不行的”。
億恩科技地址(ADD):鄭州市黃河路129號(hào)天一大廈608室 郵編(ZIP):450008 傳真(FAX):0371-60123888
聯(lián)系:億恩小凡
QQ:89317007
電話:0371-63322206 本文出自:億恩科技【mszdt.com】
服務(wù)器租用/服務(wù)器托管中國(guó)五強(qiáng)!虛擬主機(jī)域名注冊(cè)頂級(jí)提供商!15年品質(zhì)保障!--億恩科技[ENKJ.COM]
|