Linux下rsync同步配置

安裝:

Ubuntu

sudo apt-get install rsync

Cent os

yum install rsync

 

配置:(建立三個文件,這裏我放在/etc/rsyncy/,分別是rsyncd.conf,rsyncd.secrets,rsyncd.motd)

#chmod 600 /etc/rsyncd/rsyncd.secrets  //首先將rsyncd.secrets權限設置爲root,否則會報錯。

#vim /etc/rsyncd/rsyncd.conf   //編輯rsyncd.conf文件

uid = root/nobody

gid = root/nobody

use chroot = no

timeout = 300

port = 873                               

max connections = 30                    

pid file = /var/log/rsyncd.pid            

lock file = /var/run/rsyncd.lock           

log file = /var/log/rsyncd.log           

log format = %t %a %m %f %b

 

[backup]  //模塊名                              

path = 要同步的目錄                     

comment =test                           

read only = no                           

write only = no                          

list = no                               

ignore errors                          

hosts allow = 192.168.1.0/24     

hosts deny =  *                          

auth users = root                   

secrets file=/etc/rsyncd/rsyncd.secrets

 

PS:這裏需要說明一下,配置這些東西,主要是在服務器端,客戶端不用這樣弄的,下面會說到客戶端的配置方式。

 

配置rsyncd.secrets

#vim /etc/rsyncd/rsyncd.secrets    //編輯rsyncd.secrets文件

root:密碼   //這裏的root,要和前面配置rsyncd.conf裏的auth users一樣,後面是密碼

#chmod 777 要同步的目錄  //修改要同步的目錄的權限,否則會報錯

 

啓動

#/usr/bin/rsync –daemon –config=/etc/rsyncd.conf

關閉

#lsof –i :873  //這裏可以得到PID號

#kill -9 pid

我給的網址裏面有更加詳細和好的關閉方法,可以去看看

 

客戶端配置:

先安裝好rsync

啓動

#touch /etc/rsyncd.conf  //這裏必須建立這個文件,不然無法啓動rsync

#/usr/bin/rsync –daemon

#touch /etc/rsyncd/rsyncd.secrets

#vim /etc/rsyncd/rsyncd.secrets

密碼  //這裏的密碼和服務器端的密碼一樣

 

注意事項:

這裏必須保證服務器端和客戶端能互相通信

我們將兩臺電腦的873端口要打開,不然會報錯

#vim /etc/sysconfig/iptables

加入

-A INPUT –m –state NEW –m tcp –p tcp –dport873 –j ACCEPT

注意這裏兩臺電腦都要加入,不然會報錯。

 

同步:

rsync –vzrtopg –delete 客戶端要同步到服務器的目錄 配置文件中的auth users@ip地址::模塊名--password-flie=/etc/rsyncd.secrets


這裏是將客戶端的同步到服務器上,--delete表示差異同步,沒有的會被刪除掉,服務器端和客戶端保持一致,如果不需要這樣就將—delete刪除

 

rsync –avzP –delete  配置文件中的authusers @ip地址::模塊名–password-file=/etc/rsyncd.secrets


這裏是將服務器的同步到客戶端上,和上面的同理

 

下面是通過ssh將遠程服務器同步到本地


下面是通過ssh將本地同步到遠程服務器


下面是一些rsync一些參數的用法,在百度知道中有更加詳細的參數用法

ps:2018年7月2日

沒想到會再次用到這個博客。再次遇到了很多坑,這裏記錄一下,rsync的conf有一定的順序問題,順序恰當可以免密碼直接開始同步。

這樣子配置就不會輸入密碼,不用帶--password-file這個參數,也不用在客戶端裏創建secrets文件。


上面這個圖中如果auth user在上面這個位置就不用輸入密碼,如果在我下面的註釋的這個位置就需要輸入密碼

rsync中的參數

 

  -r 是遞歸

  -l 是鏈接文件,意思是拷貝鏈接文件;-p 表示保持文件原有權限;-t 保持文件原有時間;-g 保持文件原有用戶組;-o 保持文件原有屬主;-D 相當於塊設備文件;

  -z 傳輸時壓縮;

  -P 傳輸進度;

  -v 傳輸時的進度等信息,和-P有點關係,自己試試。可以看文檔;

  -e ssh的參數建立起加密的連接。

  -u只進行更新,防止本地新文件被重寫,注意兩者機器的時鐘的同時

  --progress是指顯示出詳細的進度情況

  --delete是指如果服務器端刪除了這一文件,那麼客戶端也相應把文件刪除,保持真正的一致

  --password-file=/password/path/file來指定密碼文件,這樣就可以在腳本中使用而無需交互式地輸入驗證密碼了,這裏需要注意的是這份密碼文件權限屬性要設得只有屬主可讀。

 

可能中間可能會出現一些錯誤,可以參看錯誤處理。下面是網址和我參看的一些資料

詳情可參考:http://www.linuxidc.com/Linux/2012-12/75995.htm#實現同步

                        http://www.poluoluo.com/server/201309/241711.html#錯誤處理

                        http://www.cnblogs.com/itech/archive/2009/08/10/1542945.html#較全的命令使用方法

                        http://baike.baidu.com/link?url=smupHxVM9_iLiklLEFRNb-lUPaoB_E5qG8tdM-ZO4RuTwulnSBE-260ZhGBZpEiRnv5EgCuMcYItYJ4q-30fF_  #百度知道


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