====== rsnapshot 安裝與使用方式 ======
* 官方網址 - http://www.rsnapshot.org/
* 使用 perl 撰寫呼叫 rsync, ssh, diff, du.. 的一個同步備份檔案工具程式
* 目前版本 1.3.1
===== 安裝方式 =====
* 如果已經有安裝 rpmforge 可以直接下
yum install rsnapshot
===== 備份方式 =====
* 範例一:
* 每四小時備份以下目錄資料到 /data1500G/backup/.snapshots 內
* /pd920/wd1t/web-data/ localhost/
* 編輯 /etc/rsnapshot.conf
:
snapshot_root /data1500G/backup/.snapshots/
:
cmd_ssh /usr/bin/ssh
:
cmd_rsnapshot_diff /usr/bin/rsnapshot-diff
:
#########################################
# BACKUP INTERVALS #
# Must be unique and in ascending order #
# i.e. hourly, daily, weekly, etc. #
#########################################
interval hourly 6
interval daily 7
interval weekly 4
#interval monthly 3
:
logfile /var/log/rsnapshot
:
###############################
### BACKUP POINTS / SCRIPTS ###
###############################
# LOCALHOST
backup /pd920/wd1t/web-data/ localhost/
#backup /home/ localhost/
#backup /etc/ localhost/
#backup /usr/local/ localhost/
:
- 參數檔內的參數間必須是 tab 隔開, 如果輸入空白格就會出現錯誤
- interval hourly 6 表示要保留 6 分差異備份, 如果在 /etc/crontab 內設定每兩小時執行一次 hourly, 2*6=12 那就保留 12 小時前的差異資料, 若要保留 24 小時前的資料, 要改成 12 (2*12=24)這樣才會有 12 次的備份資料
* 測試設定
rsnapshot hourly &
rsnapshot du
* 設定到 /etc/crontab 內
:
15 */4 * * * root /usr/bin/rsnapshot hourly
:
* 範例二:
* 每天備份本地目錄與遠端目錄資料到 /data/backup/.snapshots 內(保留最近三天的差異資料)
* 本地目錄 : /pd920/wd1t/xen/ -> localhost/
* 遠端目錄 : jonathan@nw1.com.tw:/samba_bak/ -> nw1/
* 過濾不需同步 /samba_bak/data/temp/ 目錄底下所有資料
* 複製 /etc/rsnapshot.conf 成 /etc/rsnapshot_day.conf
cp -a /etc/rsnapshot.conf /etc/rsnapshot_day.conf
* 編輯 /etc/rsnapshot_day.conf
:
snapshot_root /data/backup/.snapshots/
:
:
#########################################
# BACKUP INTERVALS #
# Must be unique and in ascending order #
# i.e. hourly, daily, weekly, etc. #
#########################################
interval hourly 3
interval daily 7
interval weekly 4
#interval monthly 3
:
logfile /var/log/rsnapshot_daily
:
lockfile /var/run/rsnapshot_daily.pid
:
exclude /samba_bak/data/temp/
:
###############################
### BACKUP POINTS / SCRIPTS ###
###############################
# LOCALHOST
backup /pd920/wd1t/xen/ localhost/
backup jonathan@nw1.com.tw:/samba_bak/ nw1/
:
* 測試設定
rsnapshot -c /etc/rsnapshot_day.conf hourly &
rsnapshot -c /etc/rsnapshot_day.conf du
* 設定到 /etc/crontab 內
:
15 0 * * * root /usr/bin/rsnapshot -c /etc/rsnapshot_daily.conf hourly
:
* daily 參數的使用是搬移 hourly 的最後一份, 所以必須要先有 hourly 才能有 daily
* hourly 最小值是 2 , 最少要有兩份.. hourly.0 hourly.1 不能只有一份 hourly.0
* 這樣可以在
* /data1500G/backup/.snapshots/hourly.0/localhost/ 內出現 pd920/wd1t/web-data/
* /data/backup/.snapshots/hourly.0/localhost/ 內出現 pd920/wd1t/xen/
===== 設定備份完成通知 =====
* 主要是透過 utils/rsnapreport.pl 產生這次備份統計結果來通知
* 先將 rsnapreport.pl 連結到 /usr/bin 目錄下
ln -s /usr/share/doc/rsnapshot-1.3.1/utils/rsnapreport.pl /usr/bin/rsnapreport.pl
chmod a+x /usr/bin/rsnapreport.pl
* 更改 /etc/rsnapshot.conf 內的設定
:
verbose 4
:
rsync_long_args --stats
:
* 更改 /etc/crontab 內的啟動方式
:
# rsnapshot
12 */2 * * * root /usr/bin/rsnapshot hourly 2>&1 | /usr/bin/rsnapreport.pl | mail -s"rsnapshot Sync Report" tryweb@ichiayi.com
:
===== 分享最新備份目錄 =====
* 透過權限設定與目錄掛載方式分享給需要讀取備份者使用
* Exp. 有個帳號 backup 可以看到最新的備份目錄
- 設定原本備份目錄其他用戶可讀取權限 Exp. /data2000/backup/.snapshots/
chmod 0755 /data2000/backup/.snapshots/
- 設定 nfs 提供出分享目錄 Exp. /data2000/backup/.snapshots/hourly.0/nw1/samba
vi /etc/exports
----
:
/data2000/backup/.snapshots/hourly.0/nw1/samba 127.0.0.1(ro,no_root_squash)
----
service nfs restart
- 設定 backup 可讀取這最新備份目錄 Exp. /home/backup/nw1_samba 看到 nfs 分享目錄
vi /etc/fstab
----
:
localhost:/data2000/backup/.snapshots/hourly.0/nw1/samba /home/backup/nw1_samba nfs ro 0 0
----
mount /home/backup/nw1_samba
- 登入 backup 身份存取最新備份目錄的檔案
===== 還原方式 =====
* 可直接將 .snapshots 內特定的備份版本透過 cp -a 的方式複製到還原目錄即可
* 以範例一的 12 小時前的備份版本 /data1500G/backup/.snapshots/hourly.2/localhost/pd920/wd1t/web-data/ 要還原到 /data/web-data 就可以直接下
cp -a /data1500G/backup/.snapshots/hourly.2/localhost/pd920/wd1t/web-data/ /data/
===== 參考說明 =====
* http://www.ascc.sinica.edu.tw/iascc/articals.php?_section=2.4&_op=?articalID:2151
* http://www.rsnapshot.org/howto/1.2/rsnapshot-HOWTO.en.html#all_users
{{tag>rsync backup rsnapshot}}