歡迎來到Linux教程網
Linux教程網
Linux教程網
Linux教程網
Linux教程網 >> Linux基礎 >> 關於Linux >> 利用rsync實現數據遠程容災備份

利用rsync實現數據遠程容災備份

日期:2017/3/2 10:00:39   编辑:關於Linux

rsync是Linux系統下的數據鏡像備份工具,通過rsync可以將本地系統數據通過網絡備份到任何遠程主機上,rsync有如下特性:

可以鏡像保存整個目錄樹和文件系統
可以增量同步數據,文件傳輸效率高,因而同步時間很短。
可以保持原有文件的權限、時間等屬性。
加密傳輸數據,保證了數據的安全性。
接著我們通過實例詳細介紹下rsync的使用方法,這裡我們假定有A、B兩個Linux系統,A系統運行業務,B系統作為A的一個遠程容災備份機,那麼A系統就是rsync的服務端,B系統就是rsync的客戶端。需要在A、B兩個系統上都安裝rsync軟件,這樣,在A系統上運行rsync守護進程,而B系統可以通過系統守護進程crontab來定時備份A系統上指定的數據。從而實現了數據的遠程容災。
我們的安裝環境為:
操作系統:Red Hat Enterprise Linux Server release 5
內核版本:Linux web 2.6.18-8.el5
A系統IP地址:192.168.60.253
B系統IP地址:192.168.60.231
(1)在A、B兩個系統上安裝rsync
rysnc的主頁地址為:http://rsync.samba.org/,我們這裡下載的版本為rsync-3.0.4,接著進行編譯安裝:
[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系統上配置rsync
rsync的配置文件為/etc/rsyncd.conf,在rsync安裝完畢,默認是沒有這個文件的,我們手動建立一個即可。rsyncd.conf文件是由一個或多個模塊結構組成。該文件有全局參數和模塊參數組成,一個模塊定義從方括弧中的模塊名開始,直到下個模塊的定義開始。配置完畢的內容如下:
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
對上面每個選項的含義解釋如下:
 uid 此選項指定當該模塊傳輸文件時守護進程應該具有的用戶ID,默認值是“nobody”。
 gid 此選項指定當該模塊傳輸文件時守護進程應該具有的用戶組ID。默認值為“nobody”。
 max connections 此選項指定模塊的最大並發連接數量,以保護服務器,超過限制的連接請求,將被暫時限制。默認值是0,也就是沒有限制。
 pid file 此選項用來指定rsync守護進程對應的PID文件路徑。
 lock file 此選擇指定支持max connections的鎖文件,默認值是/var/run/rsyncd.lock。
 log file 此選項指定了rsync的日志輸出文件路徑。
 [ixdba] 表示定義一個模塊的開始,ixdba就是對應的模塊名稱。
 path 此選項用來指定需要備份的文件或目錄,必填項,這裡指定的目錄為/webdata。
 list 此選項設定當客戶請求可以使用的模塊列表時,該模塊是否被列出。默認值是true,如果需要建立隱藏的模塊。可以設置為false。
 auth users 此選項用來定義可以連接該模塊的用戶名,多個用戶用空格或逗號分隔開。需要注意的是這裡的用戶和Linux系統用戶沒有任何關系。這裡指定的用戶是backup。
 secrets file 此選項指定一個包含“用戶名:密碼”格式的文件,用戶名就是“auth users”選項定義的用戶,密碼可以隨便指定,只要和客戶端的secrets file對應起來就行。只有在auth users被定義時,該文件才起作用。系統默認沒有這個文件,自己手動創建一個即可。
(3)在A系統上啟動rsync守護進程
執行如下指令啟動rsync守護進程:
[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系統上配置rsync
在備份機上不用做任何設置,只需執行rsync同步操作即可,為了在同步過程中,不用輸入密碼,需要在B系統上創建一個secrets file,此文件的內容為A系統rsyncd.conf文件中“auth users”選項指定用戶的密碼,而這個文件的名稱以及路徑可以隨意指定,只要在執行rsync同步時指定即可。
接下來執行同步操作,請看如下指令:
[root@web~]# /usr/local/bin/rsync -vzrtopg --delete --progress [email protected]::ixdba /ixdba.net --password-file=/etc/server.pass
對這條指令中每個參數的含義介紹如下:
 “--vzrtopg”選項中v是“—verbose”,即詳細模式輸出,z表示“--compress” 即對備份的文件在傳輸時進行壓縮處理,r表示“--recursive”,也就是對子目錄以遞歸模式處理。t即“--times”,用來保持文件時間信息,o即“--owner”用來保持文件屬主信息。p即“--perms”用來保持文件權限,g即“--group”用來保持文件的屬組信息。
 “--delete”選項指定以rsync服務端為基准進行數據鏡像同步,也就是要保持rsync服務端目錄與客戶端目錄的完全一致性。在這裡也就是以A服務器為基准進行同步。
 “--progress”選項用於顯示數據鏡像同步的過程。
 “[email protected]::ixdba” 表示對服務器192.168.60.253中的ixdba模塊進行備份,也就是指定備份的模塊,backup表示使用“backup”這個用戶對該模塊進行備份。
 “/ixdba.net”用於指定備份文件在客戶端機器上的存放路徑,也就是將備份的文件存放在備份機的/ixdba.net目錄下。
 “--password-file=/etc/server.pass”用來指定客戶機上存放的密碼文件位置,這樣在客戶端執行同步命令時就無需輸入交互密碼了,注意,這個密碼文件的名稱和位置可以隨意指定,但是在客戶機上必須存在此文件,文件的內容僅僅為備份用戶的密碼,這裡指的是backup的密碼。

Copyright © Linux教程網 All Rights Reserved