下面是rsync的另外一種方法,服務器端和客戶端使用。
兩臺機器都須要安裝軟件包,這裏不羅嗦了。
服務器端配置: cat /etc/rsyncd.conf (主要配置文件)
uid = root #root用戶訪問
gid = root #root組用戶訪問
use chroot = no #不能使用chroot
max connections = 9 #最大鏈接數
#list = yes #容許列出文件清單
pid file = /var/run/rsyncd.pid
lock file = /var/run/rsync.lock
log file = /var/log/rsyncd.log
hosts allow = 192.168.200.170 #只容許這個主機訪問(注意既是客戶端的ip地址)
[data] #發佈項
path = /home/data/ #發佈的路徑
ignore errors
read only = yes #只讀
auth users = root #認證用戶爲root
secrets file = /etc/sery.pass #密碼文件
------------------------------------------------------------------------------------
下面是密碼文件
[root@mailsvr ~] # cat /etc/sery.pass
root:123456
權限爲600服務器
服務器端配置完成網絡
客戶端 配置:
只須要安裝rsync包便可
接下來建立密碼文件
[root@mailsvr ~] # cat /etc/sery.pass --->(客戶端定義的密碼)
123456 #這裏只須要輸入服務器端密碼文件中定義的密碼便可。
使用命令開始同步
[root@mailsvr ~] # rsync -aSvH --password-file=/etc/sery.pass root@192.168.200.149::data /home/ -->(將服務器端的備份發佈路徑同步到本地機的/home下,注意root@192.168.200.149::data冒號後的data既是path = /home/data/發佈的路徑)socket
若是再作此步驟,拋出以下異常,具體的日誌:
[root@xyh ~]# rsync -aSvH --password-file=/etc/sery.pass root@192.168.200.149::data /home
rsync: failed to connect to 192.168.200.149: No route to host (113)
rsync error: error in socket IO (code 10) at clientserver.c(107) [receiver=2.6.8]
解決方法:客戶端和服務器端都關閉防火牆 service iptables stop便可 tcp
解釋:
--password-file=/etc/sery.pass 這段是密碼文件,若是不加這段,須要手動輸入服務器端定義好的密碼。
root@192.168.200.149::data 這裏的:data是服務器端的發佈項。
若是文件比較大,能夠使用nohup將進城放在後臺執行,
[root@mailsvr ~] # nohup rsync -aSvH --password-file=/etc/sery.pass root@192.168.200.149::data /home/ >rsync.log &
上面的表示將遠程機器192.168.200.149機器上發佈的data目錄,同步到本地機器的/home/目錄下。ide
Rsync同步常見問題總結:
錯誤一:
@ERROR: auth failed on module xxxxx
rsync: connection unexpectedly closed (90 bytes read so far)
rsync error: error in rsync protocol data stream (code 12) at io.c(150)
解決:這是由於密碼設置錯了,沒法登入成功,檢查一下rsync.pwd,看客服是否匹配。還有服務器端沒啓動rsync 服務也會出現這種狀況。
錯誤二:
password file must not be other-accessible
continuing without password file
Password:
解決:這是由於rsyncd.pwd rsyncd.sec的權限不對,應該設置爲600。如:chmod 600 rsyncd.pwd
錯誤三:
@ERROR: chroot failed
rsync: connection unexpectedly closed (75 bytes read so far)
rsync error: error in rsync protocol data stream (code 12) at io.c(150)
解決:這是由於你在 rsync.conf 中設置的 path 路徑不存在,要新建目錄才能開啓同步。
錯誤四:
rsync: failed to connect to 218.107.243.2: No route to host (113)
rsync error: error in socket IO (code 10) at clientserver.c(104) [receiver=2.6.9]
解決:對方沒開機、防火牆阻擋、經過的網絡上有防火牆阻擋,都有可能。關閉防火牆,其實就是把tcp udp 的873端口打開。ui