2013-08-08

使用 rsync & git 建立每日備份

工作上遇到災難,救災完畢後評估使用 rsync 和 git 建立每日還原點。

災難是:
前人建立某個帳戶,家目錄在 /,用 userdel -r 清理舊帳戶,時間過久才發現災難已經造成。
兩個月前閒來無事,有做系統總備份,httpd 和 mysql 是兩個月前的紀錄,客戶難免唉唉叫。救災完畢後,使用 git 建立每日備份。

主機特性是代管客戶網頁資料,包含圖片和資料庫。

概略步驟是:
1. rsync 初始,git init
2. 每日 rsync 同步,git commit
3. 每日產生 git bundle

Webpages

使用 rsync 將來源抓到工作目錄,然後在工作目錄建 git 資料夾。


接著每天做備份



最後每天產生 git bundle


MySQL

和 webpages 相似的步驟,先初始




接著每天備份,產生 git bundle




最後產生 git bundles




還原




後記

災難後尋找備份方案時,見到有人每日、每週、每月做不同程度的備份。記得將每日的動作放進 crontab 定時執行,放在離峰時間比較不影響服務品質。

資料搞失或資料復原都需要付出慘痛的代價,如果能做成自動化,可以降低很多反應時間和損失。