3.4 Rsync企业级应用经验
3.4.1 Rsync排错思维
用户必须具备的Rsync排错思维如下。
❑ 排错必备思想:要对部署流程步骤熟练掌握,熟悉Rsync数据同步原理,并且要学会多看日志,rsync命令行输出日志文件为/var/log/rsyncd.log。
❑ 排错能力练习:模拟错误(两个人练习:一个人制造错误,一个人排错),重视日常错误总结。
1. Rsync服务器端排错思路
Rsync服务器端排错思路如下。
1)查看Rsync服务配置文件路径是否正确,正确的默认路径为:/etc/rsyncd.conf。
2)查看配置文件里host allow、host deny,允许的IP网段是否是允许客户端访问的IP网段。
3)查看配置文件中path参数里的路径是否存在、权限是否正确(正常应为配置文件中的UID参数对应的属主和组)。
4)查看Rsync服务是否启动(查看命令为:ps -ef|grep rsync)、端口是否存在(查看命令为:netstat -lnt|grep 873)。
5)查看Iptables防火墙和SELinux是否开启允许Rsync服务通过,也可考虑将其关闭。
6)查看服务器端Rsync配置的密码文件是否为600的权限、密码文件格式是否正确(正确格式:用户名:密码),文件路径和配置文件里的secrect files参数对应。
7)如果是推送数据,要查看配置文件rsyncd.conf中用户是否对模块下目录有可读写的权限。
2. Rsync服务器端常见报错整理
1)服务器端常见错误一:服务器端无共享目录错误。
示例代码如下:
rsync -avz /tmp/ rsync_backup@172.16.1.41::backup --password-file=/etc/rsync. password @ERROR: chdir failed rsync error: error starting client-server protocol (code 5) at main.c(1503) [sender=3.0.6]
故障原因分析及解决策略如下:
解答:@ERROR: chdir failed是由于没有模块中所指定的共享目录,创建共享目录并授权即可 mkdir /backup -p chown -R rsync.rsync /backup
2)服务器端常见错误二:共享目录权限设置问题。
示例代码如下:
rsyn c -avz /tmp/ rsync_backup@172.16.1.41::backup --password-file=/etc/rsync. password sending incremental file list ./ rsync: failed to set times on "." (in data): Operation not permitted (1) ddd/ rsync: recv_generator: mkdir "ddd" (in data) failed: Permission denied (13) *** Skipping any contents from this failed directory *** oldboy/
故障原因分析及解决策略如下:
# 传输文件报权限错误failed: Permission denied 解答: 原因1:模块下面的共享目录创建后没有授权导致,需要进行授权可以让Rsync虚拟用户访问管理(CentOS6 的故障) chown -R rsync.rsync /backup 原因2:rsyncd.conf里增加fake super = yes参数(CentOS7的故障)。
3)服务器端常见错误三:服务器端防火墙服务开启。
示例代码如下:
rsync -avz /tmp/ rsync_backup@10.0.0.7::data --password-file=/etc/rsync. password rsync: failed to connect to 10.0.0.7: No route to host (113) rsync error: error in socket IO (code 10) at clientserver.c(124) [sender= 3.0.6]
故障原因分析及解决策略如下:
# No route to host问题 解决:可能被防火墙阻挡了。 telnet rsync服务端ip 873检查,如果出现Connection refuse字样表示防火墙阻挡或服务没启动好。 /etc/init.d/iptables stop(CentOS6故障) chkconfig iptables off(CentOS6故障) systemctl stop firewalld(CentOS7故障) systemctl disable firewalld(CentOS7故障)
4)服务器端常见错误四:服务器端密码文件权限太大导致的错误。
示例代码如下:
@ERROR: auth failed on module oldboy 执行tail /var/log/rsyncd.log会发现错误。 2014/09/11 11:22:20 [13098] rsync: recv_generator: mkdir "ddd" (in data) failed: Permission denied (13) 2014/09/11 11:24:38 [13236] secrets file must not be other-accessible (see strict modes option)
故障原因分析及解决策略如下:
# @ERROR: auth failed on module oldboy [root@two ~]# rsync -avz install.log rsync_backup@10.0.0.122::oldboy Password: @ERROR: auth failed on module oldboy rsync error: error starting client-server protocol (code 5) at main.c(1530) [sender=3.0.6] 解答:@ERROR: auth failed on module oldboy出现此报错问题,一般为认证用户信息与密码信 息不正确,或者认证密码文件权限没有设置为600导致。
5)服务器端常见错误五:CentOS7服务器端按CentOS6的配置报错。
示例代码如下:
rsync: recv_generator: mkdir "opt" (in backup) failed: Permission denied (13) *** Skipping any contents from this failed directory *** 解决:CentOS7服务端/etc/rsyncd.conf中要加上fake super =yes参数,CentOS6就不用。
3. Rsync客户端排错思路
Rsync客户端排错思路如下。
1)查看客户端Rsync配置的密码文件是否为600的权限、密码文件格式是否正确。注意:仅需有密码,并且和服务端的密码一致。
2)用telnet连接Rsync服务器IP地址873端口(telnet 172.16.1.41873),查看服务是否启动(可测试服务端防火墙是否阻挡)。
3)客户端执行命令时,语法格式书写不正确,此命令的细节要记清楚,尤其语法格式中的双冒号及其后的oldboy为模块名称。
3.4.2 Rsync复制工具的优缺点
1. Rsync的优点
Rsync复制工具具有以下几个优点。
❑ 增量备份,支持socket(Daemon)守护进程模式,集中备份(支持推拉模式备份)。
❑ 远程Shell通道模式还可以加密(SSH)传输。
❑ socket(Daemon)需要加密传输,可以利用VPN服务或IPSec服务。
2. Rsync缺点
Rsync复制工具具有以下几个缺点。
❑ 大量小文件复制的时候,Rsync进程可能会停止僵死或效率不高。
❑ 一次性远程拷贝可以用scp,如果大量小文件可打成压缩包再拷贝。