dar ( difference backup 的好工具 )

最後更新: 2017-02-10

介紹

 

 


備份:

由於 dar 相當強大, 所以以下內容由淺入深來討論,

指令格式:

dar [-c | -x | -l | -d | -t | -C | -+] [<path>/]<basename> [options]

level_1:

mkdir /home/backup
chmod 700 backup

dar -c /home/backup/lamp_www -R /var/www/datahunter.servehttp.com \
      -e -z4

# 執一次模擬備份, 並以 gzip 的 level 4 來縮壓 ( default 是以 level 9 的 )
# 它會備份在 /var/www/datahunter.servehttp.com 目錄內的所有內容,
# 並存檔成 /home/backup/lamp_www.dar

 

level_2:

dar -c /home/backup/lamp_www -R /var/www/datahunter.servehttp.com \
      -e -z4 -b -p -s100M

# 建基於上面例子, 今之加了一行
# 它會每 100MB 作一次分剖 ( lamp_www.1.dar lamp_www.2.dar ... )
# 並會響鍾提示按 "Enter" 繼續建立下一個備份

 

level_3:

dar -c /home/backup/lamp_www -R /var/www/datahunter.servehttp.com \
      -e -z7 -b -p -s100M \
      -X "*~" -X ".*~" -P files/backup_migrate -P files/share -D

# 再建基於上面的列子, 今次加入了不備份什麼的指令
# -X 是指不備份什麼名的檔案, 它是可以用 * 及 ? 的
# -P 是指不備份什麼路徑下的檔案
# -D 是與 -P 一起用, 是指保持目錄結構

============================================

設定檔:

dar 共有兩個設定檔, 分別是  ~/.darrc  及 /etc/darrc

當執行程式時會載入它們的設定值

如果不想載入的話, 那就要加上 "-N"

如果加入 "-N" 則會忽略以上兩檔案

============================================

查看包內的檔案清單:

dar -l lamp_www.1.dar

# 由於以上包名有 ".1.", 那dar會認為是 slice 來
# 但照按 ENTER 照過

顯示格式:
[data ][ EA  ][compr] | permission | user  | group | size  |          date            |    filename

============================================

測試包的原整性:

dar -t lamp_www.1.dar

============================================

差異備份:

 dar -c lamp_www_diff -A lamp_www -B bu_www -R /var/www/datahunter.servehttp.com/

-A     在那個包上建上差異備份
         只需要輸入檔案名就可以, 不用尾的 .1.dar 之類
-B     是指載入設定檔, 而無視  ~/.darrc  及 /etc/darrc, 以此減少指令長度

------------------------------------- bu_www 內容 -------------------------------------
-z7 -b -p -s100M -X "*~" -X ".*~" -P files/backup_migrate -P files/share -D
----------------------------------------------------------------------------------------------

注意 !!!! 在差異備份上會 del 檔案

----------------------------------------------------------------------
5 inode(s) recorded as deleted from reference backup
----------------------------------------------------------------------

 


還原

 

還原全部 File

dar -d /home/backup/lamp_www -R /var/www/datahunter.servehttp.com

還原個別檔案:

dar -x /home/backup/lamp_www.1.dar -g sites/datahunter.servehttp.com/settings.php

# 如果是用 "增量" 的備份的話, 那可能要續個備份找最新的  settings.php 出來

dar -d  /home/backup/lamp_www -R /var/www/datahunter.servehttp.com -r

-r       是指不要舊檔案 overwrite 目標的新檔案