差異處

這裏顯示兩個版本的差異處。

連向這個比對檢視

兩邊的前次修訂版 前次修改
下次修改
前次修改
tech:rsnapshot [2012/04/24 15:27] jonathantech:rsnapshot [2014/04/11 15:56] (目前版本) jonathan
行 1: 行 1:
 +====== rsnapshot 安裝與使用方式 ======
 +  * 官方網址 - http://www.rsnapshot.org/
 +  * 使用 perl 撰寫呼叫 rsync, ssh, diff, du.. 的一個同步備份檔案工具程式
 +  * 目前版本 1.3.1
  
 +===== 安裝方式 =====
 +  * 如果已經有安裝 rpmforge 可以直接下 <code sh>
 +yum install rsnapshot
 +</code>
 +
 +===== 備份方式 =====
 +  * 範例一:
 +    * 每四小時備份以下目錄資料到 /data1500G/backup/.snapshots 內
 +      * /pd920/wd1t/web-data/   localhost/
 +    * 編輯 /etc/rsnapshot.conf <file>
 +:
 +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/
 +:
 +</file>
 +<note>
 +  - 參數檔內的參數間必須是 tab 隔開, 如果輸入空白格就會出現錯誤
 +  - interval hourly 6 表示要保留 6 分差異備份, 如果在 /etc/crontab 內設定每兩小時執行一次 hourly, 2*6=12 那就保留 12 小時前的差異資料, 若要保留 24 小時前的資料, 要改成 12 (2*12=24)這樣才會有 12 次的備份資料
 +</note>
 +    * 測試設定 <code sh>
 +rsnapshot hourly &
 +rsnapshot du
 +</code>
 +    * 設定到 /etc/crontab 內<file>
 +:
 +15 */4 * * * root /usr/bin/rsnapshot hourly
 +:
 +</file>
 +  * 範例二:
 +    * 每天備份本地目錄與遠端目錄資料到 /data/backup/.snapshots 內(保留最近三天的差異資料)
 +      * 本地目錄 : /pd920/wd1t/xen/  -> localhost/
 +      * 遠端目錄 : [email protected]:/samba_bak/  -> nw1/
 +    * 過濾不需同步 /samba_bak/data/temp/ 目錄底下所有資料
 +    * 複製 /etc/rsnapshot.conf 成 /etc/rsnapshot_day.conf<code sh>
 +cp -a /etc/rsnapshot.conf /etc/rsnapshot_day.conf
 +</code>
 +    * 編輯 /etc/rsnapshot_day.conf<file>
 +:
 +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/
 +:
 +</file>
 +    * 測試設定 <code sh>
 +rsnapshot -c /etc/rsnapshot_day.conf hourly &
 +rsnapshot -c /etc/rsnapshot_day.conf du
 +</code>
 +    * 設定到 /etc/crontab 內<file>
 +:
 +15 0 * * * root /usr/bin/rsnapshot -c /etc/rsnapshot_daily.conf hourly
 +:
 +</file>
 +<note>
 +    * daily 參數的使用是搬移 hourly 的最後一份, 所以必須要先有 hourly 才能有 daily
 +    * hourly 最小值是 2 , 最少要有兩份.. hourly.0 hourly.1 不能只有一份 hourly.0
 +</note>
 +  * 這樣可以在 
 +    * /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 目錄下<code sh>
 +ln -s /usr/share/doc/rsnapshot-1.3.1/utils/rsnapreport.pl /usr/bin/rsnapreport.pl
 +chmod a+x /usr/bin/rsnapreport.pl
 +</code>
 +  * 更改 /etc/rsnapshot.conf 內的設定<file>
 +:
 +verbose         4
 +:
 +rsync_long_args --stats
 +:
 +</file>
 +  * 更改 /etc/crontab 內的啟動方式<file>
 +:
 +# rsnapshot
 +12 */2 * * * root /usr/bin/rsnapshot hourly 2>&1 | /usr/bin/rsnapreport.pl | mail -s"rsnapshot Sync Report" [email protected]
 +:
 +</file>
 +
 +===== 分享最新備份目錄 =====
 +  * 透過權限設定與目錄掛載方式分享給需要讀取備份者使用
 +  * Exp. 有個帳號 backup 可以看到最新的備份目錄 
 +  - 設定原本備份目錄其他用戶可讀取權限 Exp. /data2000/backup/.snapshots/ <code sh>
 +chmod 0755 /data2000/backup/.snapshots/
 +</code>
 +  - 設定 nfs 提供出分享目錄 Exp. /data2000/backup/.snapshots/hourly.0/nw1/samba <code sh>
 +vi /etc/exports
 +----
 +:
 +/data2000/backup/.snapshots/hourly.0/nw1/samba  127.0.0.1(ro,no_root_squash)
 +----
 +service nfs restart
 +</code>
 +  - 設定 backup 可讀取這最新備份目錄 Exp. /home/backup/nw1_samba 看到 nfs 分享目錄 <code sh>
 +vi /etc/fstab
 +----
 +:
 +localhost:/data2000/backup/.snapshots/hourly.0/nw1/samba        /home/backup/nw1_samba  nfs     ro      0 0
 +----
 +mount /home/backup/nw1_samba
 +</code>
 +  - 登入 backup 身份存取最新備份目錄的檔案
 +
 +
 +===== 還原方式 =====
 +  * 可直接將 .snapshots 內特定的備份版本透過 cp -a 的方式複製到還原目錄即可
 +  * 以範例一的 12 小時前的備份版本 /data1500G/backup/.snapshots/hourly.2/localhost/pd920/wd1t/web-data/ 要還原到 /data/web-data 就可以直接下 <code sh>
 +cp -a /data1500G/backup/.snapshots/hourly.2/localhost/pd920/wd1t/web-data/ /data/
 +</code>
 +
 +===== 參考說明 =====
 +  * 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}}