需求:两台服务器(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