Rsync 非常適合在兩台機器之間快速同步大型、復雜的目錄,例如論壇的附件目錄。再配合 ssh ,則安全性也有保證,且可以利用 ssh public key 和 cron 來進行自動定時同步。
說明:兩台機器分別為 localhost 和 remotehost ;用戶分別為 localuser 和 remoteuser。
環境:FreeBSD 4.9 和 FreeBSD 6.1
代碼如下設置 ssh public key 認證
$ssh-keygen -t dsa -b 2048
生成所需的密鑰
$scp /home/localuser/.ssh/id_dsa.pub remoteuser@remotehost:/home/remoteuser/.ssh/localuser_id_dsa.pub
將公鑰拷貝至 remotehost
$ssh remoteuser@remotehost
登錄到?端
代碼如下 $cd .ssh/ ; cat localuser_id_dsa.pub >> authorized_keys至此,設置 ssh 認證完畢。
設置 rsync
確認兩端機器都安裝 rsync , freeBSD 有 ports ,安裝非常方便。
寫個腳本名為 backup.sh ,內容如下:
代碼如下 #!/bin/sh-a 選項相當於選項 -rlptgoD 。簡單來講,此選項可遞歸並將幾乎所有的東西同步過去,非常有用。注意的是, -a 默認不會保存 hardlinks ,不過可以單獨用 -H 選項來實現。
-z 選項在傳輸中壓縮文件,這無疑加快同步速度。
-delete 選項會刪除接受方一些不應存在的文件,此文件在發送方已經被刪除,這將保持目錄完全同步。
讓 cron 每天凌晨1點來跑這個腳本
代碼如下 $crontab -e友情提示
rsync是沒有自動啟動同步功能了,如果我們要定時去備份一個網站數據我們就需要用到定時功能了,上面的例子來使用到了linux中$crontab命令來定時執行備份數據腳本了哦。