2010年2月20日 星期六

透過ssh定時自動備分。

在linux系統下。當要將a機的資料備份到b機時,首先將先在a機ssh模式下不用密碼能登入b機,做法要看http://yuhfa.blogspot.com/2009/12/ssh.html 這篇文章。
之後在a機的以vi編輯crontab:
打開後格式如下:
#minute hour mday month wday who command
0 0 * * * root /usr/sbin/ntpdate -b time.nist.gov
第一個0是分
第二個0是時
第一個*是每個月的第幾天
第二個*是哪一個月
第三個*是星期幾
root是執行身分
/usr/sbin/ntpdate 中,ntpdate是程式指令,而/usr/sbin/是該指令的絕對路徑(這裏一定要用絕對路徑)。
-b time.nist.gov是ntpdate的指令相關參數設定。

比照這樣的設定概念,要備份資料,用rsync這個程式,
用下列指令找到rsync的絕對路徑:
find / -name rsync
假設其路徑是/bin/rsync
而我們希望系統每天深夜一點開始將a機的software資料(若絕對路徑為/share/software)備份到b機的software裏(若絕對路徑為/volume1/software)且b機的網址為www,kimo.com,則在crontab這個檔裡設定底下的內容:
0 1 * * * root /bin/rsync -avl -e delete ssh /share/software/ admin@www.kimo.com:/volume1/software
若要還原時,則只要將來源目的的位置前後對調即可!
p.s.:其中的admin是登入b機的身份,可視狀況調整身份。
而admin@www.kimo.com:這個身份與位址永遠是加在非下指令機的目標絕目路徑前,換句話說,若今天是在在a機的ssh模式下要對b機與c機做資料的備份與還原時,則來源與目的的兩個絕對路徑目錄前就均必須加上其各自能登入各自機器的身份與其網址。

沒有留言: