需求:兩臺服務器(A、B),在服務器A上存放着大量的圖片,須要在天天夜裏三點同步到服務器B,源目錄和目的目錄都是/p_w_picpath服務器
啓用程序:rsyncide
服務器A上的配置:ui
一、/etc/rsyncd.confspa
uid = nobodycode
gid = nobodyserver
use chroot = no圖片
max connectionts = 6同步
read only = yesit
hosts allow = 192.168.95.0/24io
pid file = /var/run/rsyncd.pid
lock file = /var/run/rsyncd.lock
log file = /var/log/rsyncd.log
[p_w_picpath]
comment = p_w_picpath
path = /p_w_picpath/
ignore errors
list = no
auth users = root
secrets file = /etc/rsyncd.passwd
二、/etc/rsyncd.passwd
root:test
完成上面的配置後運行
# rsync --daemon
若是提示沒有找到rsyncd.passwd文件則說明這個文件沒有在默認的/etc/路徑下或者沒有建立,只要把這個文件移動過去就能夠了
服務器B上的配置:
/etc/rsync.passwd
dongpi2014
這裏要注意,服務器A和服務器B上對於密碼文件的寫法是不同的,服務器A的密碼文件須要記錄用戶名,而服務器B的密碼文件不須要記錄用戶名。
以後執行命令
rsync -arv --password-file=/etc/rsyncd.passwd rsync://root@192.168.95.11/test /p_w_picpath/
這樣就開始同步了
注意:
若是有如下的報錯:
@ERROR: Unknown module 'xxx'
rsync error: error starting client-server protocol (code 5) at main.c(1503) [receiver=3.0.6]
這個報錯代表密碼文件的權限有問題,正常的密碼文件權限應爲600
The --password-file option may only be used when accessing an rsync daemon.
這個報錯代表服務器端沒有執行rsync --daemon命令(沒有啓動服務)
@ERROR: auth failed on module xxxxx
這個報錯代表服務器A和服務器B裏面的用戶名密碼有問題,有多是服務器B裏面用戶名密碼格式問題。
除了以上方法外,還能夠用expect的自動交互腳本完成
#!/usr/bin/expect
set timeout 3000
spawn rsync -avcz --delete root@192.168.95.11:/p_w_picpath/ /p_w_picpath
expect "password:"
send "dongpi2014\r"
expect "]*"
exit
interact