====== 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}}