rsync同步两台服务器

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

相关文章
相关标签/搜索