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/
- 遠端目錄 : [email protected]:/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 [email protected]:/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" [email protected] :
分享最新備份目錄
- 透過權限設定與目錄掛載方式分享給需要讀取備份者使用
- 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/