通過rsync實現遠端容災備份

2021-09-22 03:53:45 字數 3665 閱讀 7969

一、rsync簡介

rsync是linux系統下的資料映象備份工具,通過rsync可以將本地系統資料通過網路備份到任何遠端主機上,rsync有如下特性:

 可以映象儲存整個目錄樹和檔案系統

 可以增量同步資料,檔案傳輸效率高,因而同步時間很短。

 可以保持原有檔案的許可權、時間等屬性。

 加密傳輸資料,保證了資料的安全性。

二、rsync的安裝與使用1、在a、b兩個系統上安裝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的密碼。

其實rsync作為客戶端工具,提供了很多的選項和引數,這裡我們僅僅給出了常用的一部分,更詳細的資訊請執行「man rsync」檢視。

如果配置沒有錯誤,接下來rsync將自動去服務端(即a系統)將需要備份的資料同步到客戶端(即b系統)。rsync指令在客戶端執行完成資料的同步後,將自動停止,以後如果在服務端目錄下有新增資料時,客戶端不會自動將資料同步過去,此時,還需要再次執行rsync命令組合進行資料同步,因此,rsync方式的資料備份是需要觸發同步指令才能完成。

觸發同步指令的方式有很多種,例如可以將同步指令放入客戶端系統的crontab守護程序,設定同步時間,然後讓linux去觸發同步指令,自動完成資料備份。這種資料備份方式可以用於資料安全性要求不是很高的業務系統上。

細心的你可能發現了,在這種方式下,服務端和客戶端的資料在兩次同步的時間間隔內,可能出現不一致現象。而對於資料安全性要求極高的業務系統,這種備份方式就不能滿足要求了,這些業務要求服務端和客戶端的資料要做到實時同步,不過幸運的是,linux核心提供了inotify檔案系統監控機制,通過inotify與rsync的組合,完全可以做到rsync服務端和客戶端資料的實時同步。

至此,關於rsync的簡單應用,我們已經做了乙個簡單的介紹,系統的備份與恢復是乙個巨大的工程,要保證系統資料的安全性和穩定性,需要做很多方面的工作。最後,套用一句話來說明備份的重要性:「備份不是萬能的,但是沒有備份是萬萬不行的」。

通過rsync遠端增量備份 差異備份

備份是寫 的人必不可少的一項工作,傳統的備份,一般就是copy所有資料到乙個地方,然後貼上標籤,表示是什麼時候備份的,這種備份被稱之為 整體備份 如果經常進行整體備份,對磁碟的空間占用需求就很大,尤其當你備份大容量的資料的時候,有時候,比如乙個星期,只對其中一小部分的內容進行了修改,但是還是需要全部...

3 3 備份容災

1 備份視窗 它是指在使用者正常使用的業務系統不受影響的情況下,能夠對業務系統中的業務資料進行資料 備份的時間間隔,或者說是用於備份的時間段。2 異構儲存 不同結構的儲存裝置組合起來的乙個儲存池,達到效能和穩定性的乙個很好的折中點 並且應用了虛擬化技術,使得其使用起來就像乙個整體,降低維護投入。不同...

mysql 容災 災備 備份

1 使用mysqldump命令備份 mysqldump命令將資料庫中的資料備份成乙個文字檔案。表的結構和表中的資料將儲存在生成的文字檔案中。mysqldump命令的工作原理很簡單。它先查出需要備份的表的結構,再在文字檔案中生成乙個create語句。然後,將表中的所有記錄轉換成一條insert語句。然...