rsync常见问题及解决办法整理收集
由于我们经常使用rsync进行服务器文件的同步工作,但在配置过程中,会出现很多问题,下面的错误基本上都是通过客户端返回的错误进行分析的。
问题一:
[root@ecs-79KDb ~]# rsync -avz /root [email protected]::backup Password: @ERROR: auth failed on module backup rsync error: error starting client-server protocol (code 5) at main.c(1649) [sender=3.1.2]
分析:
如果单单提示:rsync error: error starting client-server protocol (code 5) at main.c(1649) [sender=3.1.2],没有提示:@ERROR: auth failed on module backup的话,有以下几种情况:
1、尝试关闭防火墙测试。
# systemctl stop firewalld
2、检查机密文件属性是否是600
[root@sm ~]# ls -l /etc/rsyncd.secrets -rw------- 1 root root 26 Nov 29 22:00 /etc/rsyncd.secrets
3、检查配置文件是否有格式错误,包括命令注释不能同行
正确应该如下设置:
[share] #模块名 comment = user share #模块描叙 path = /share ignore errors #exclude = lost+found/ #可排除/share目录内的其他目录不同步 auth users = bob,maray #账号名
4、命令的语法格式错误
rsync命令语法格式错误。
通过自己查看排查,发现是因为小小的原因,导致一直配置不成功。原因就是配置参数后面都添加了注释信息导致的,连我自己看了也是醉了,以后还是要多注意格式问题!
问题二:
@ERROR: auth failed on module tee rsync error: error starting client-server protocol (code 5) at main.c(1522) [receiver=3.0.3]
原因:
服务器端该模块(tee)需要验证用户名密码,但客户端没有提供正确的用户名密码,认证失败。
提供正确的用户名密码即可解决此问题。
问题三:
@ERROR: Unknown module ‘tee_nonexists’ rsync error: error starting client-server protocol (code 5) at main.c(1522) [receiver=3.0.3]
原因:
服务器不存在指定模块。提供正确的模块名或在服务器端修改成你要的模块以解决问题。
问题四:
password file must not be other-accessible continuing without password file Password:
原因:
这是因为rsyncd.pwd rsyncd.secrets的权限不对,应该设置为600。如:chmod 600 rsyncd.pwd
问题五:
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端口打开。
问题五:
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端口打开。
问题六:
rsync error: error starting client-server protocol (code 5) at main.c(1524) [Receiver=3.0.7]
原因:
/etc/rsyncd.conf配置文件内容有错误。请正确核对配置文件。
问题七:
rsync: chown "" failed: Invalid argument (22)
原因:
权限无法复制。去掉同步权限的参数即可。(这种情况多见于Linux向Windows的时候)
问题八:
@ERROR: daemon security issue -- contact admin rsync error: error starting client-server protocol (code 5) at main.c(1530) [sender=3.0.6]
原因:
同步的目录里面有软连接文件,需要服务器端的/etc/rsyncd.conf打开use chroot = yes。掠过软连接文件。
问题九:
ERROR: module is read only rsync error: syntax or usage error (code 1) at main.c(747) [receiver=2.6.8] rsync: connection unexpectedly closed (4 bytes received so far) [sender] rsync error: error in rsync protocol data stream (code 12) at io.c(600) [sender=3.0.6]
解决: 提示打开了read only,将配置文件 read only = no
问题十:
cat /var/log/rsyncd.log 2011/12/14 11:58:37 [22377] name lookup failed for XX.XX.XX.XX: Name or service not known 2011/12/14 11:58:37 [22377] connect from UNKNOWN (XX.XX.XX.XX) 2011/12/14 11:58:37 [22377] rsync to html/ from unknown (XX.XX.XX.XX)
解决:需要在服务端这台机上上的/etc/hosts里面添加客户端机的ip和机器名
问题十一:
[root@Dell-R710 ~]# rsync -artuz -R --delete ./ 192.168.1.233::gex rsync: failed to connect to 61.145.118.206: Connection refused (111) rsync error: error in socket IO (code 10) at clientserver.c(124) [sender=3.0.6]
解决:
一、查看防火墙
二、查看服务端是否开启守护进程
问题十二:
在client上遇到问题:
rsync -auzv --progress --password-file=/etc/rsync.pas [email protected]::backup /home/ rsync: could not open password file "/etc/rsync.pas": No such file or directory (2) Password: @ERROR: auth failed on module backup rsync error: error starting client-server protocol (code 5) at main.c(1506) [Receiver=3.0.7]
遇到这个问题:client端没有设置/etc/rsync.pas这个文件,而在使用rsync命令的时候,加了这个参数 --password-file=/etc/rsync.pas,其中/etc/rsync.pas文件只需要登录密码,不需要user:password 这种格式。
问题十三:
rsync -auzv --progress --password-file=/etc/rsync.pas [email protected]::backup /home/ @ERROR: auth failed on module backup rsync error: error starting client-server protocol (code 5) at main.c(1506) [Receiver=3.0.7]
遇到这个问题:client端已经设置/etc/rsync.pas这个文件,里面也设置了密码111111,和服务器一致,但是服务器段设置有错误,服务器端应该设置/etc/rsync.pas ,里面内容root:111111 ,这里登陆名不可缺少;而client端设置/etc/rsync.pas只需要登录密码。
问题十四:
rsync -auzv --progress --password-file=/etc/rsync.pas [email protected]::backup /home/ @ERROR: chdir failed rsync error: error starting client-server protocol (code 5) at main.c(1506) [Receiver=3.0.7]
遇到这个问题,是因为服务器端的/home/backup 其中backup这个目录并没有设置,所以提示:chdir failed
问题十五:
rsync: write failed on "/home/backup2010/wensong": No space left on device (28) rsync error: error in file IO (code 11) at receiver.c(302) [receiver=3.0.7] rsync: connection unexpectedly closed (2721 bytes received so far) [generator] rsync error: error in rsync protocol data stream (code 12) at io.c(601) [generator=3.0.7]
磁盘空间不够,所以无法操作。
可以通过df /home/backup2010 来查看可用空间和已用空间
问题十六:
在rsync文件同步过程中出现权限问题:
类似如下的提示:
rsync: opendir "/kexue" (in dtsChannel) failed: Permission denied (13)
注意查看同步的目录权限是否为755;可以重新设置一下文件夹权限:
find ./ -type d -exec chmod 755 {} \;
问题十七:
rsync: failed to connect to 203.100.192.66: Connection timed out (110) rsync error: error in socket IO (code 10) at clientserver.c(124) [receiver=3.0.5]
连接超时,使用netstat –tunlp命令 检查服务器监听端口是否在监听,使用远程telnet命令在客户端测试到服务器端口是否可以访问。
问题十八:
rsync: failed to connect to 10.10.10.170: Connection refused (111) rsync error: error in socket IO (code 10) at clientserver.c(124) [receiver=3.0.5]
原因,服务端rsync服务未启动。启动服务命令:
rsync --daemon --config=/etc/rsyncd.conf
问题十九:
rsync: recv_generator: mkdir "/teacherclubBackup/rsync……" failed: No space left on device (28) *** Skipping any contents from this failed directory ***
原因:磁盘空间满,解决就是增加磁盘空间
问题二十:
rsync error: received SIGINT, SIGTERM, or SIGHUP (code 20) at rsync.c(544) [receiver=3.0.5] rsync error: received SIGINT, SIGTERM, or SIGHUP (code 20) at rsync.c(544) [generator=3.0.5]
原因:Ctrl+C或者大量文件导致rsync服务异常。说明:导致此问题多半是服务端服务没有被正常启动,到服务器上去查查服务是否有启动,然后查看下 /var/run/rsync.pid 文件是否存在,最干脆的方法是杀死已经启动了服务,然后再次启动服务或者让脚本加入系统启动服务级别然后shutdown -r now 服务器
问题二十一:
rsync: read error: Connection reset by peer (104) rsync error: error in rsync protocol data stream (code 12) at io.c(759) [receiver=3.0.5]
查看rsync日志
rsync: unable to open configuration file "/etc/rsyncd.conf": No such file or directory
原因:rsync守护服务xnetid启动问题。
xnetid查找的配置文件位置默认是/etc下,根据具体情况创建软链接。
例如:
ln -s /etc/rsyncd/rsyncd.conf /etc/rsyncd.conf
或者更改指定默认的配置文件路径,在/etc/xinetd.d/rsync配置文件中。
问题二十二:
@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]
原因:防火墙问题导致,这个最好先彻底关闭防火墙,排错的基本法就是这样,无论是S还是C,还有ignore errors选项问题也会导致。
问题二十四:
@ERROR: access denied to www from unknown (192.168.1.123) rsync: connection unexpectedly closed (0 bytes received so far) [receiver] rsync error: error in rsync protocol data stream (code 12) at io.c(359)
说明:此问题很明显,是配置选项host allow的问题,初学者喜欢一个允许IP段做成一个配置,然后模块又是同一个段的IP导致。
rsync 其他错误与解决方法补充
很多问题除了对配置、服务、防火墙、网络作必要检查外,查看日志是很有必要,通过日志有时会很有效得出结论和结果。
日志主要查看两个地方,一个是你配置/etc/rsyncd.conf所配置的log file的日志文件路径,另外一个就是/var/log/messages系统日志文件,建议进行筛选查看。
参考文章链接:
https://blog.csdn.net/zdl244/article/details/103326660
https://blog.51cto.com/kkkkkk/1194202
https://www.jb51.net/article/31920.htm