2007年7月23日 星期一

Linux的異地備份 (1)

http://indeepnight.blogspot.com/2007/06/linuxoffsite-backup1.html

Indeepnight  2007/07/18

Linux據說不太適合用ghost進行備份資料,所以我就開始尋找其它的替代方案。

原本有考慮使用cpio或是軟體raid的方式來進行備援,但有不適合即時復原和成本太高的問題,所以改用了rsync的備援方式。

它的好處就是能夠最資料的比對,如果是異地備份的話,還是以ssh的加密法來傳送資料(在區網之內效益較大),如果是internet的備份,如果是利用有限頻寬的ADSL來傳送資料,就不太適合了!

筆者是以Fedora6做為系統,在安裝的過程中,rsync也已經安裝完成,皆以xinetd這個Super Daemon控制,相關的內容有興趣者可以上Google查一下!

為了資料能夠即時備援上線,筆者使用了兩台主機,雖然都是一般的pc,並沒有什麼較為特別的主機(但是因為Linux的硬體需求較低)。

所以,我用了一台p4-2.4g、512mb的ddrram(DDR400)當主要系統,p3-850MHz、384mb的sdram(pc133)為異地的備援機(為了備援主機,筆者還碰上了一些硬體相關的問題,之後在與大家討論)。

不過這也告訴我們,大家舊的主機可不一定就沒有派上用場,因為如果一個類似NAS功能的主機,動輒就要五、六位數的花費,雖然專業的主機有較好的效能,但是用舊機器一樣也能練練功力。

至於rsync的指令用法有相當多,有興趣的人可以參考官方網站的說明文件(英文的說明文件,請笑納)。

筆者在這裡也介紹常用的一些參數:

-a, --archive archive mode; same as -rlptgoD(維持相關資料,hard-links除外)
-v, --verbose increase verbosity(在傳送期間,增加傳送的資訊量)
-R, --relative use relative path names(保留相對路徑)
--delete, delete extraneous files from dest dirs(Server端刪除資料,Client也同步刪除)

而在Fedora6中的rsync已經預設使用ssh的加密法傳送,在舊版還需加上-e ssh才能使用加密傳送,但是ssh做自動化的異地傳送還有個問題要解決。

那就是就算在Crontab中加上了一行自動排程執行的指令:

0 0 * * * rsync -avR --delete /home root@192.168.1.99:/home/backup

(凌晨0點0分進行rsync,把/home的資料傳去192.168.1.99的/home/backup備份)

但是ssh做登入時,會遇到一個棘手的問題,那就是輸入密碼這件事!

筆者下一篇會解說如何解決自動登入的問題,那就是利用公鑰(Pub-Key)登入。