2010年7月7日

rsync 全自動異地備援筆記.

PC A 的資料要同步到 PC B做異地備援
1.由PC-B 連至PC-A把資料抓回來.
2.使用DSA金鑰來達到不用密碼連進PC-A
3.將同步指令加入crontab

要免密碼連進PC-A,要先在PC-B產生DSA(公/私)鑰,再把公鑰放到PC-A給ssh驗證

root@PC-B:~/.ssh#ssh-keygen -d

Generating public/private dsa key pair.
Enter file in which to save the key (/root/.ssh/id_dsa): <-不輸入, 使用預設值
Enter passphrase (empty for no passphrase): <-不輸入
Enter same passphrase again: <-不輸入
Your identification has been saved in /root/.ssh/id_dsa.
Your public key has been saved in /root/.ssh/id_dsa.pub.
The key fingerprint is:
11:22:33:44:55:66:77:88:99:00:11:22:33:44:55:66 root@xxx.com.tw

如此便產生了金鑰 id_dsa, id_dsa.pub

再來要把公鑰傳至PC-A

root@PC-B:~/.ssh#scp id_dsa.pub PC-A的IP:/root/.ssh/authorized_keys2
root@PC-A's password: <-現在還要密碼.

id_dsa.pub 100%
************************************************************************* 123 00:00
root@PC-B:~/.ssh#  <--傳過去了

現在執行 ssh PC-A 如果直接進去,應該就ok了.

接著安裝 rsync (PC-A PC-B都裝)
apt-get install rsync
接著假設要將 PC-A 的 /data 同步到 PC-B /backup
測試看看...
root@PC-B:~/.ssh# rsync -alv -e ssh PC-A的IP:/data/  /backup

是最重要的就是上面這一行了!~
順利的話,應該會看到在傳檔的畫面.


-R 保留相對路徑
-a --archive 保留檔案權限
-z 傳輸時壓縮資料


如此寫成 sync.sh
再修改權限 chmod 700
再加入 crontab
0 0 * * 0 /someplace/sync.sh &>/dev/null

記得加後面那個 &>/dev/null 才不會每次執行都寄mail給root

沒有留言:

張貼留言