ad

2011年11月30日 星期三

rsync 同步

---------------------------------------------------------------------------------
| [root@www ~]# rsync [-avrlptgoD] [-e ssh] [user@host:/dir] [/local/path] |
| 選項與參數: |
| -v :觀察模式,可以列出更多的資訊,包括鏡像時的檔案檔名等; |
| -q :與 -v 相反,安靜模式,略過正常資訊,僅顯示錯誤訊息; |
| -r :遞迴複製!可以針對『目錄』來處理!很重要! |
| -u :僅更新 (update),若目標檔案較新,則保留新檔案不會覆蓋; |
| -l :複製連結檔的屬性,而非連結的目標原始檔案內容; |
| -p :複製時,連同屬性 (permission) 也保存不變! |
| -g :保存原始檔案的擁有群組; |
| -o :保存原始檔案的擁有人; |
| -D :保存原始檔案的裝置屬性 (device) |
| -t :保存原始檔案的時間參數; |
| -I :忽略更新時間 (mtime) 的屬性,檔案比對上會比較快速; |
| -z :在資料傳輸時,加上壓縮的參數! |
| -e :使用的通道協定,例如使用 ssh 通道,則 -e ssh |
| -a :相當於 -rlptgoD ,所以這個 -a 是最常用的參數了! |
| 更多說明請參考 man rsync 的解說! |
----------------------------------------------------------------資料來源:鳥哥----

rsync玩一玩其實發現滿簡單的
首先先設定金鑰 參考
這樣同步時才免輸入密碼
如果要讓程式自己跑更是需要設定金鑰這樣才有辦法同步

參考鳥哥列出來的參數其實說的很清楚了
我直接用舉例的來說明

假設 1. : 我在本機端 /home/www/ 要'更新'至 192.168.1.100底下的/home/www/ (本機備援至.100 時使用)

執行以下程式碼

rsync -av -e ssh /home/www/* 192.168.1.100:/home/www/
(-a = -rlptgoD 也就是保留所有屬性囉)

會把 /home/www/ 的資料更新至 192.168.1.100上
這樣192.168.1.100上的/home/www 資料就會跟 /home/www底下一模一樣了

假設 2. :我在本機端 /home/www/ 要'同步'至 192.168.1.100底下的/home/www/ (兩台資料都要是最新的, 兩台同步時使用)

rsync -auv -e ssh /home/www/* 192.168.1.100:/home/www/
(-u = 僅更新 (update),若目標檔案較新,則保留新檔案不會覆蓋,意指兩台都會是最新的)

會把 /home/www/ 的資料同步至 192.168.1.100上
這樣本機上的/home/www有如果比.100上檔案更新就會更新至 .100的/home/www底下
但如果要達到兩台都是最新的
同樣的在.100更新時也要設定

rsync -auv -e ssh /home/www/* 192.168.1.XXX:/home/www/
(xxx為本機ip )

同步開始~~~over

---------2012.01.02更新----------------------------------------------------------------------------

我之前說得如果要全部同步要加上 -delete
這樣在本機如果有刪除資料 那遠端也會一起刪除資料

沒有留言:

張貼留言