linux中rsync非同步伺服器實現檔案同步與備份

來源:互聯網
上載者:User

   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
RSYNC=/usr/local/bin/rsync
SSH=/usr/bin/ssh
KEY=/home/localuser/.ssh /id_rsa
RUSER=remoteuser
RHOST=remotehost
RPATH=/remote/dir
LPATH=/this/dir
$RSYNC -az—delte -e “$SSH -i $KEY” $RUSER@$RHOST:$RPATH $LPATH

  -a 選項相當於選項 -rlptgoD 。簡單來講,此選項可遞迴並將幾乎所有的東西同步過去,非常有用。注意的是, -a 預設不會儲存 hardlinks ,不過可以單獨用 -H 選項來實現。

  -z 選項在傳輸中壓縮檔,這無疑加快同步速度。

  -delete 選項會刪除接受方一些不應存在的檔案,此檔案在發送方已經被刪除,這將保持目錄完全同步。

  讓 cron 每天淩晨1點來跑這個指令碼

 代碼如下  
$crontab -e
0 1 * * * /home/localuser/bin/backup.sh

  友情提示

  rsync是沒有自動啟動同步功能了,如果我們要定時去備份一個網站資料我們就需要用到定時功能了,上面的例子來使用到了linux中$crontab命令來定時執行備份資料指令碼了哦。

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.