Incremental rsync Linux 增量備份 備份 同步

rsync異地增量備份 資料同步無落差

2018-10-23
增量備份方式若透過日常排程的方式來進行,可能會發生備份資料不一致的落差,若能改用即時備份的解決方案,在來源端的資料發生異動時,就立即把資料備份至目的端,問題就能夠圓滿解決。這裡使用Linux核心內建的inotify模組以及rsync備份程式來實際示範即時備份的操作。

了解rsync備份程式

說起開源碼社群中的備份軟體,相信許多人腦海裡應該都會浮現rsync軟體。rsync是一種異地備份軟體,與一般備份軟體不同的是,rsync採用增量備份的方式,此類備份方式在每次備份前會先比較兩邊資料的差異,然後僅將差異的資料備份過去,而非備份全部的資料。rsync的運作方式分為以下兩種:

‧伺服器(Server)模式:以常駐(Daemon)的方式運作,亦即以伺服器模式來服務(預設通訊埠為873),通常會在目的端運作,接收其他主機的備份資訊。

‧客戶端(Client)模式:以一般程式方式運作,可視為使用者端(Client)程式,通常用在來源端主機上,將資料備份到備份主機上運作。

安裝rsync的過程很簡單,可使用「yum install rsync」指令來安裝rsync。安裝完成後,rsync軟體提供名稱為「rsync」的主程式來執行備份作業,以下是rsync常用的參數選項:

-b:表示要產生備份檔。當目的端上已存在同樣的檔案時,就將原先的檔案重新命名為其他的檔名,在此組態下,可利用--suffix子選項來命名備份檔案名稱的前綴檔名。另外,也可以指定--backup-dir子選項來設定備份檔的存放位置。

-u:在備份時會略過所有已經存在於目的端,且文件時間比要備份的檔案為新的檔案。

-l:要保留符號連結(Symbolic Link)型式的檔案。

-p:表示要保留檔案的權限資訊。

-o:要保留檔案擁有者資訊(僅對擁有者為root有效)。

-g:將保留檔案所屬群組資訊。

-t:表示要保留檔案時間資訊。

-r:表示以遞迴的方式來備份資料,包括所要備份目錄下的所有子目錄。

-a:等同於設定-rlptgoD等組態。

-D:表示要保留設備檔案資訊(僅對擁有者為root有效)。

--delete:刪除來源端已經不存在但在目的端存在的檔案。

--force:當目的端的目錄被覆蓋時,就強制先刪除該目錄。

--daemon:表示rsync將以常駐程式的型式來執行,亦即以伺服器的型式來執行。

除了可利用參數選項的方式來設定外,如果rsync是以伺服器的型式來執行時,也可利用設定組態檔的方式來設定相關的組態(檔名為rsyncd.conf),其常用的組態設定如下例所述(其中#為註解):

[myrestore]  #可設定備份代號,名稱可
   自訂
   path = /restore   
   #設定備份檔案要存放的目錄位置
   uid = root        
   #設定所使用的使用者權限
   gid = root        
   #設定所使用的群組權限
   secrets file = /etc/rsyncd.sec
   rets  #設定認證所使用密碼檔位置,
   必須在這個檔案中設定來源端的帳號和
   密碼

接下來設定「/etc/rsyncd.secrets」檔案,此檔案格式為「帳號:密碼」,設定如下:

rsync:rsyncpwd

然後,將此檔案的權限設為「600」,並將擁有者設為「root」,執行指令內容如下:

chown root:root /etc/rsyncd.secrets
#更新檔案擁有者為root
chmod 600 /etc/rsyncd.secrets 
#重新設定檔案權限為600

在設定完目的端的密碼檔後,接下來設定來源端的密碼檔(/etc/rsyncd.secrets),與目的端的密碼檔不同的是,在此來源端的密碼僅須設定密碼資訊(本例中為rsyncpwd)即可。

同樣地,此檔案也須設定擁有者為「root」並將權限設為「600」,如此就可以完成rsync目的端與來源端的組態設定。

開始動手實作

在本文中,將分成兩種情境來說明。第一種情況為單純地將備份資料從來源端以rsync程式備份到目的端,設定過程如圖4所示。


▲圖4 將備份資料從來源端以rsync程式備份至目的端。

一開始,必須先在目的端的系統上設定「rsyncd.conf」,相關的設定內容如下所示:


追蹤我們Featrue us

本站使用cookie及相關技術分析來改善使用者體驗。瞭解更多

我知道了!