Incremental rsync Linux 增量備份 備份 同步

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

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

uid = root     #設定rsync執行時所
使用的使用者權限
gid = root     #設定rsync執行時所
使用的使用者群組權限
 [myrestore]   #指定備份代號
  path = /restore  
  #設定備份資料儲存的位置
secrets file = /etc/rsyncd.secrets
#設定來源端連接所使用的帳號及密碼資訊所
 在的檔名
  read only = false

接著,同樣在目的端上的rsyncd.secrets中加入以下這一行設定:

rsync:rsyncpwd   #表示使用者名稱為
rsync,且密碼為rsyncpwd

設定完組態檔後,即可利用「sync --daemon --config=rsyncd.conf」指令來啟動rsync伺服器。可利用「netstat –anpt | grep rsync」指令來檢查是否啟動成功,會發現rsync成功地以通訊埠873運作,如圖5所示。


▲圖5 檢查rsync是否已成功啟動。

接下來設定來源端,在來源端上新增rsyncd.secrets檔案,在該檔案內加入以下的設定內容:

rsyncpwd  #與目的端所設定的密碼要一致

設定完成後,僅需執行下列指令即可將欲被備份的目錄同步至目的端,並儲存在目的端的「/restore」目錄內:

rsync -avzrpog --delete --force
 --password-file=rsyncd.secrets
[被備份目錄] rsync@[目的端IP]::
myrestore

接著,利用rsync結合inotifywait來實作,一旦被備份的目錄發生異動時,就會即時地將資料以rsync備份至目的端。為了簡化說明,這裡將只設定當被備份目錄發生新建檔案或目錄時,就執行rsync指令將資料備份至目的端。同樣地承襲上列設定,可另外再撰寫一支簡單的腳本程式(以無限迴圈來執行),程式內容如下所示:

#! /bin/sh
while true
do
  inotifywait -r -e create /usr/
  bin &&rsync -avzrpog --delete 
  --force --password-file=rsyncd.
  secrets [被備份目錄] rsync@[目的端
  IP]::myrestore
done

最後,再以手動的方式執行此腳本程式,至此就完成了即時備份的系統了!

<本文作者:吳惠麟,多年資安經驗,喜好利用開源碼建構相關解決方案,著有「資訊安全原理與實驗」等書。>


追蹤我們Featrue us

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

我知道了!