下面是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