技術(shù)員聯(lián)盟提供win764位系統(tǒng)下載,win10,win7,xp,裝機(jī)純凈版,64位旗艦版,綠色軟件,免費(fèi)軟件下載基地!

當(dāng)前位置:主頁(yè) > 教程 > 服務(wù)器類(lèi) >

linux中rsync異步服務(wù)器實(shí)現(xiàn)文件同步與備份

來(lái)源:技術(shù)員聯(lián)盟┆發(fā)布時(shí)間:2018-07-04 06:26┆點(diǎn)擊:

  Rsync 非常適合在兩臺(tái)機(jī)器之間快速同步大型、復(fù)雜的目錄,例如論壇的附件目錄。再配合 ssh ,則安全性也有保證,且可以利用 ssh public key 和 cron 來(lái)進(jìn)行自動(dòng)定時(shí)同步。

  說(shuō)明:兩臺(tái)機(jī)器分別為 localhost 和 remotehost ;用戶(hù)分別為 localuser 和 remoteuser。

  環(huán)境:FreeBSD 4.9 和 FreeBSD 6.1

 代碼如下      

設(shè)置 ssh public key 認(rèn)證
$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  

  至此,設(shè)置 ssh 認(rèn)證完畢。

  設(shè)置 rsync

  確認(rèn)兩端機(jī)器都安裝 rsync , freeBSD 有 ports ,安裝非常方便。

  寫(xiě)個(gè)腳本名為 backup.sh ,內(nèi)容如下:

 代碼如下      
#!/bin/sh
RSYNC=http://www.3lian.com/usr/local/bin/rsync
SSH=http://www.3lian.com/usr/bin/ssh
KEY=http://www.3lian.com/home/localuser/.ssh /id_rsa
RUSER=remoteuser
RHOST=remotehost
RPATH=http://www.3lian.com/remote/dir
LPATH=http://www.3lian.com/this/dir
$RSYNC -az—delte -e “$SSH -i $KEY” $RUSER@$RHOST:$RPATH $LPATH
 

  -a 選項(xiàng)相當(dāng)于選項(xiàng) -rlptgoD 。簡(jiǎn)單來(lái)講,此選項(xiàng)可遞歸并將幾乎所有的東西同步過(guò)去,非常有用。注意的是, -a 默認(rèn)不會(huì)保存 hardlinks ,不過(guò)可以單獨(dú)用 -H 選項(xiàng)來(lái)實(shí)現(xiàn)。

  -z 選項(xiàng)在傳輸中壓縮文件,這無(wú)疑加快同步速度。

  -delete 選項(xiàng)會(huì)刪除接受方一些不應(yīng)存在的文件,此文件在發(fā)送方已經(jīng)被刪除,這將保持目錄完全同步。

  讓 cron 每天凌晨1點(diǎn)來(lái)跑這個(gè)腳本

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

  友情提示

  rsync是沒(méi)有自動(dòng)啟動(dòng)同步功能了,如果我們要定時(shí)去備份一個(gè)網(wǎng)站數(shù)據(jù)我們就需要用到定時(shí)功能了,上面的例子來(lái)使用到了linux中$crontab命令來(lái)定時(shí)執(zhí)行備份數(shù)據(jù)腳本了哦。