2012/06/21

daily update backup file 每日更新備份檔


有次幫朋友解決她的系統,因為她對 Linux 是門外漢,負責人又離職了,而系統首先是董事長的信無法收發,發現的是積存太大,爆了。後來又發現所有人都無法登入,一查,發現的是整顆硬碟爆了。
結論如下:
1. 該系統是磁碟陣列,但是只裝一顆硬碟。
2. 那顆硬碟只有 300G, 給 var, home 各約一半,大略上說啦,信箱當然在 /var/spool/mail 下,卻備份在 /home 下
3. 每週備份一次整個 /var 及 /home 
有發現問題嗎?問題來了,還不止一個,有誰看出來了嗎?整個!還是整個 /home!!!!
暫時解決方案就是把舊的備份檔砍了,只留一個最新的,而 /home 則是整個砍了。/var 還沒什麼大問題,比較嚴重的也只有她家董事長的信箱一個人就占了 1GB, 不大啦,但是每週備份也就不小喔。

而 /home 則成等比級數成長,所以該負責員工一離職,一週左右就出問題了。現在提供一下要更新備份檔的作法參考如下:

先初始一個第0階的備份檔:
$ tar --create --listed-incremental ./game.snar --gzip \
    --file game_`date +%F`.tar.gz game/ 2>&1 >> game_`date +%F`.log
接下來,備份時可以只針對比第0階的備份檔新的才更新,其中時間的參考檔是 game.snar,所以這個檔請不要亂刪。之後產生的都稱之為 level 1 的備份檔。
$ tar --create --listed-incremental ./game.snar --gzip \
    --file game_`date +%F`.tar.gz game/ >> game_`date +%F`.log
要還原的話,參考命令如下:
$ for t in game_2011-10-2*.tar.gz; \
    do tar --extract --incremental --gzip --file $t; done

0 意見: