rsync遠程同步備份數據(ssh方式)

本人沒用過,留着以後參考

轉載來源:http://outofmemory.cn/wr/?u=http%3A%2F%2Fsmilejay.com%2F2012%2F02%2Frsync_remote%2F

前兩天,我檢查了一下部門的測試數據及文件的備份情況,看到crontab中有個rsync的腳本,我仔細一看,手動執行一下其實早就不能正常工作了,主要是由於rsync那裏不能自動進行(需要輸入ssh登錄的root密碼)。看了一下,1年多都沒有備份了,⊙﹏⊙b汗,迅速fix此問題。然後順便了解了一下rsync遠程備份的東西,寫篇博客記錄一下吧。

我常用的備份數據的方法:
對於一般的腳本或者文檔,我一般採用git repository的方式進行管理和備份,對於很多比較龐大的測試數據和程序,我採用一般專門的server來做備份,主要是通過rsync的方式進行每天的備份。

rsync遠程同步的兩種模式:
rsync連接遠程主機進行同步或備份時有兩種途徑:使用遠程shell程序(如ssh或rsh)進行連接,或使用TCP直接連接rsync daemon。

我是使用了一下rsync的ssh方式連接進行同步的。
當源路徑或目的路徑的主機名後面包含一個冒號分隔符時,rsync使用遠程shell傳輸;當源路徑或目的路徑的主機名後面包含兩個冒號,或使用rsync://URL時,rsync使用TCP直接連接rsync daemon。
特別的,如果只指定了源路徑,而沒有指定目的路徑,rsync將會顯示源路徑中的文件列表,類似於使用命令ls -l。rsync把本地端看作client,把遠程端當成server。

本人目前常用的rsync遠程同步命令如下:
rsync vmm-qa.smilejay.com:/home/ /share/home/ -avz –delete
–delete 從目的目錄中刪除不必要的文件(在server端沒有的文件)
-a相當於 -rlptgoD ,所以這個 -a 是最常用的參數了。
當上面的命令在client端進行同步時,在server端,可以看到如下進程:
[root@myserver ~]# ps -ef | grep rsync | grep -v grep
root      7502  7500 66 21:36 ?        00:00:04 rsync –server –sender -vlogDtprz . /home/

rsync vgt.smilejay.com:/etc/ /share/temp/ -avz -F –exclude yum
-F –exclude abc  #同步時,排除abc這個文件或目錄

關於rsync命令的一些選項意義如下:
[root@linux ~]# 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 shell模式同步不需要密碼的方法:
由於它其實是走的ssh方式,所以按照ssh那樣來配置key即可實現rsync不需密碼。
我曾經寫過一篇博客,關於ssh免密碼的配置:

我還遇到一個問題,就是我的key也弄好了,但是就是不行(還是需要手動輸入密碼)。
後來發現其實是sshd禁止了root用戶的ssh遠程登錄,檢查Server端的/etc/ssh/sshd.conf文件,將其其中一項改爲:
PermitRootLogin yes
然後可以ssh自動登錄了,才能實現rsync免密碼同步。

關於rsync的shell模式和daemon模式的參考資料:
http://share.blog.51cto.com/278008/560742
http://share.blog.51cto.com/278008/567578


發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章