Rsync常见错误及命令详细参数
- 格式:doc
- 大小:31.00 KB
- 文档页数:4
rsync 功能详解目录第一章引言 (2)1.1. 编写目的 (2)1.2. 背景 (2)1.3. 参考资料.................................................................................... 错误!未定义书签。
第二章工具概述 (3)2.1. 简介 (3)2.2. 特性 (3)第三章运行环境 (4)3.1. 硬件要求 (4)3.2. 软件依赖 (4)第四章安装配置 (5)4.1. 安装包获取 (5)4.2. 安装 (5)4.3. 服务端配置 (5)4.4. 服务端启动 (6)第五章使用说明 (7)5.1. 服务端 (7)5.2. 客户端 (10)第一章引言1.1. 编写目的本文档是对rsync数据同步工具的使用说明手册,在本文档对rsync数据同步工具的使用场景、操作命令、参数进行了详细具体的描述,通过该文档读者可以了解该工具的所有功能以及具体操作命令。
1.2. 背景该工具使用者主要面向公司项目管理者、项目实施人员、系统维护人员及其他有关人员。
工具主要功能为系统数据迁移,使用时项目管理者与客户沟通,将工具部署在客户环境,对用户数据进行远程传输迁移。
第二章工具概述2.1. 简介rsync是一个数据同步工具,即可实现本地数据同步,也可实现本地和远端两个主机数据同步,通过LAN/WAN快速同步多台主机间的文件。
rsync引用“Rsync算法”来使本地和远程两个主机之间的文件达到同步,这个算法可以实现只传送两个文件的不同部分,而不是每次都整份传送,因此速度比较快。
rsync工具分为两个部分:服务端和客户端,服务端以daemon模式去运行,在以daemon 方式运行时,rsync server会打开一个873端口,等待客户端去连接。
连接时,rsync server 会检查口令是否相符,若通过口令检查,则可以开始进行文件传输,rsync也支持匿名传输。
rsync常见错误与解决⽅法整理我们都是通过错误⽇志查看在rsyncd.log⾥⾯或.err⽂件⾥⾯,⼤家可以⽤记事本打开查看。
注意windows下⾯我们需要给SvcwRsync⽤户,管理同步⽬录的所有权限,基本上这样就可以了问题⼀:@ERROR: chroot failedrsync error: error starting client-server protocol (code 5) at main.c(1522) [receiver=3.0.3]原因:服务器端的⽬录不存在或⽆权限,创建⽬录并修正权限可解决问题。
问题⼆:@ERROR: auth failed on module teersync 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]原因:服务器不存在指定模块。
提供正确的模块名或在服务器端修改成你要的模块以解决问题。
问题1:在client上遇到问题:rsync -auzv --progress --password-file=/etc/rsync.pas root@192.168.133.128::backup /home/rsync: could not open password file "/etc/rsync.pas": No such file or directory (2)Password:@ERROR: auth failed on module backuprsync 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问题2:rsync -auzv --progress --password-file=/etc/rsync.pas root@192.168.133.128::backup /home/@ERROR: auth failed on module backuprsync 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 ,这⾥登陆名不可缺少问题3:rsync -auzv --progress --password-file=/etc/rsync.pas root@192.168.133.128::backup /home/@ERROR: chdir failedrsync error: error starting client-server protocol (code 5) at main.c(1506) [Receiver=3.0.7]遇到这个问题,是因为服务器端的/home/backup 其中backup这个⽬录并没有设置,所以提⽰:chdir failed问题4: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]磁盘空间不够,所以⽆法操作。
Rsync 常见错误及解决方法由于阿里云SLB不提供ECS间的数据同步服务,如果部署在SLB后端ECS 上的应用服务是无状态的,那么可以通过独立的ECS或RDS服务来存储数据;如果部署在SLB后端ECS上的应用服务是有状态的,那么需要确保这些ECS 上的数据是同步的。
我们通过Rsync来实现多个ECS之间的数据同步。
通过Rsync来实现多个ECS之间的数据同步,请查看此文。
问题 @ERROR: chroot failed@ERROR: chroot failed rsync error: error starting client-server protocol (code 5) at main.c(1503) [receiver=3.0.6]原因:服务器端的目录不存在或无权限。
解决办法:创建目录并修正权限可解决问题。
问题 skipping non-regular filereceiving incremental file listskipping non-regular file ―vendor/bin/doctrine‖skipping non-regular file ―vendor/bin/doctrine.php‖sent 1990 bytes received 489209 bytes 327466.00 bytes/sec total size is 182515746 speedup is 371.57原因:source源文件有软链接。
解决方法:修改为rsync -va,其中 -a == -rlptgoD (no -H,-A,-X) 或者rsync -rvltOD 也可以。
解决后:receiving incremental file listvendor/bin/doctrine -> ../doctrine/orm/bin/doctrinevendor/bin/doctrine.php -> ../doctrine/orm/bin/doctrine.phpsent 1998 bytes received 489279 bytes 327518.00 bytes/sec total size is 182515746 speedup is 371.51问题@ERROR: module is read onlysending incremental file listERROR: module is read onlyrsync error: syntax or usage error (code 1) at main.c(866) [receiver=3.0.6]rsync: read error: Connection reset by peer (104)rsync error: error in rsync protocol data stream (code 12) at io.c(759) [sender=3.0.6]原因:source源服务器端权限设置read为only只读权限。
rsync@ERROR:chdirfailed的解决⽅法CwRsyncServer在windows服务器上遇到这样的问题:@ERROR: chdir failedrsync error: error starting client-server protocol (code 5) at main.c(1495) [receiver=3.0.2]权限问题:1)新建⼀个⽬录⽐如, 进⼊开始菜单>cwRsync Server>Prep a Dir for Upload,选择D:\folder1 ,确定2)右键点击folder1 ⽂件夹,进⼊属性>安全, "添加"⽤户,输⼊对象名称为Svcwrsync,并将Svcwrsync的权限设置为所有都允许。
提升⽤户权限:如果安全性要求不是很⾼的情况下,⽬录较多可以将Svcwrsync提升为管理员权限,⼀定配置限制制定ip才能同步⽂件。
ps: 修改完rsyncd.conf,要重启RsyncServer服务才能⽣效原因三、检查⽬录是不是有问题,我这把就是d与e盘错了盘符导致⽆法同步linux服务器下:系统平台:RHEL5.3客户机:[root@test1 ~]# rsync -vzrtopg --progress --delete --password-file=/etc/rsyncd.pwd marsaber@10.10.10.3::backup/var/www/html@ERROR: chdir failedrsync error: error starting client-server protocol (code 5) at main.c(1296) [sender=2.6.8]服务器⽇志(/var/log/rsyncd.log):rsync: chdir /backup failed: Permission denied (13)原因及解决办法:SELinux;setsebool -P rsync_disable_trans onerror总结:@ERROR: chdir failedrsync error: error starting client-server protocol (code 5) at main.c(1296) [receiver=2.6.8]原因及解决办法:这⼀般是在服务器端没有建⽴⽬录或者是如果有开启SELinux只要执⾏⼀下命令SELinux;setsebool -P rsync_disable_trans on切记: rsyncd.secrets的权限必须为600(注意:这个安全设置很重要,如果不这样做客户机连接服务器时会提⽰:password file must not be other-accessiblersync error: some files could not be transferred (code 23) at main.c(1298) [generator=2.6.8]@ERROR: auth failed on modulersync: connection unexpectedly closed (102 bytes read so far)rsync error: error in rsync protocol data stream (code 12) at io.c(165)服务器端⽇志将出现错误提⽰:2005/08/23 06:32:01 [8388] secrets file must not be other-accessible (see strict modes option)2005/08/23 06:32:01 [8388] continuing without secrets file2005/08/23 06:32:01 [8388] auth failed on module from documentserver服务器端rsyncd.secrets (⽤户:密码)<⽤户必须是系统⽤户,密码尽量不要为系统⽤户密码>客户端rsyncd.secrets (密码)<服务器端密码>服务器和客户端的帐户密码都不可以有空格,否则会出现@ERROR: auth failed on module注意:如果改变了端⼝号,⼀定要在/etc/services中把对应的端⼝改变才能正常运⾏如rsync 873/tcp改成rsync 3334/tcp即可error3:rsyncd.secrets的密码⼀定要和Rsync Server密码设定档案⾥的密码⼀样。
在对rsync服务器配置结束以后,下一步就需要在客户端发出rsync命令来实现将服务器端的文件备份到客户端来。
rsync是一个功能非常强大的工具,其命令也有很多功能特色选项,我们下面就对它的选项一一进行分析说明。
Rsync的命令格式可以为以下六种:1)拷贝本地文件。
当SRC和DES路径信息都不包含有单个冒号":"分隔符时就启动这种工作模式。
如:rsync -a /data /backup2)使用一个远程shell程序(如rsh、ssh)来实现将本地机器的内容拷贝到远程机器。
当DST 路径地址包含单个冒号":"分隔符时启动该模式。
如:rsync -avz *.c foo:src3)使用一个远程shell程序(如rsh、ssh)来实现将远程机器的内容拷贝到本地机器。
当SRC 地址路径包含单个冒号":"分隔符时启动该模式。
如:rsync -avz foo:src/bar /data4)从远程rsync服务器中拷贝文件到本地机。
当SRC路径信息包含"::"分隔符时启动该模式。
如:rsync -av root@172.16.78.192::www /databack5)从本地机器拷贝文件到远程rsync服务器中。
当DST路径信息包含"::"分隔符时启动该模式。
如:rsync -av /databack root@172.16.78.192::www6)列远程机的文件列表。
这类似于rsync传输,不过只要在命令中省略掉本地机信息即可。
如:rsync -v rsync://172.16.78.192/wwwrsync参数的具体解释如下:-v, --verbose 详细模式输出-q, --quiet 精简输出模式-c, --checksum 打开校验开关,强制对文件传输进行校验-a, --archive 归档模式,表示以递归方式传输文件,并保持所有文件属性,等于-rlptgoD-r, --recursive 对子目录以递归模式处理-R, --relative 使用相对路径信息-b, --backup 创建备份,也就是对于目的已经存在有同样的文件名时,将老的文件重新命名为~filename。
Rsync同步过程中遇到的常见问题⼀、Rsync服务介绍Rsync属于⼀款实现全量及增量同步数据的软件⼯具,适⽤于unix/linux/windows等多种操作系统平台。
Rsync软件能实现本地复制,远程复制,或者远程守护进程⽅式复制。
它以其delta-transfer算法闻名,减少通过⽹络数据发送数量,利⽤只发送源⽂件和⽬标⽂件之间的差异信息,从⽽实现数据的增量同步复制。
⼆、Rsync⼯作⽅式1. 本地数据备份⽅式2. 远程传输数据⽅式3. 守护进程传输数据⽅式以rsync守护进程⽅式实现为主,通过man rsync帮助,查看⽤法。
#拉取数据的命令参数⽤法Pull:rsync [OPTION...] [USER@]HOST::SRC... [DEST]rsync [OPTION...] rsync://[USER@]HOST[:PORT]/SRC... [DEST]参数解释:[USER@]HOST:: --- 指定远程连接的认证⽤户SRC --- 指定相应的模块信息[DEST] --- 将远程数据保存到本地的路径信息#推送数据的命令参数⽤法Push: rsync [OPTION...] SRC... [USER@]HOST::DESTrsync [OPTION...] SRC... rsync://[USER@]HOST[:PORT]/DEST参数解释:[USER@]HOST:: --- 指定远程连接的认证⽤户SRC --- 指定本地要进⾏推送的数据信息[DEST] --- 远程进⾏保存数据的模块信息三、守护进程部署流程3.1 服务端部署1)主机环境检查[root@backup ~]# cat /etc/redhat-releaseCentOS release 6.8 (Final)[root@backup ~]# uname -r2.6.32-642.el6.x86_64[root@backup ~]# uname -mx86_642)检查软件是否安装[root@backup ~]# rpm -qa rsyncrsync-3.0.6-12.el6.x86_643)编辑配置⽂件配置⽂件默认不存在,需要在/etc⽬录下创建rsyncd.conf。
rsync的参数摘要:1.rsync 的基本概念2.rsync 的参数分类3.常用参数及其功能4.参数实例与使用技巧5.总结正文:1.rsync 的基本概念rsync(remote synchronize)是一款开源的文件同步工具,它可以在不同的计算机之间同步文件和目录。
通过使用rsync,用户可以实现本地文件与远程服务器文件之间的双向同步,也可以实现本地文件之间的同步。
rsync 在数据传输过程中可以进行压缩,从而提高传输速度。
2.rsync 的参数分类rsync 的参数主要分为以下几类:- 通用参数:这类参数在所有命令中都会用到,如“-a”、“-v”等。
- 源参数:这类参数用于指定源文件或目录,如“-src”、“-source”等。
- 目标参数:这类参数用于指定目标文件或目录,如“-dst”、“-target”等。
- 传输参数:这类参数用于控制数据传输的方式,如“-e”、“-压缩”等。
- 文件参数:这类参数用于控制文件操作的行为,如“-w”、“-追加”等。
- 模式参数:这类参数用于控制文件或目录的权限,如“-chmod”、“-权限”等。
- 时间参数:这类参数用于控制文件或目录的时间属性,如“-mtime”、“-atime”等。
- 日志参数:这类参数用于控制日志记录的行为,如“-log”、“-日志”等。
3.常用参数及其功能以下是一些常用的rsync 参数及其功能:- -a:归档模式,表示以递归方式传输文件,并保留所有文件属性。
- -v:详细输出模式,表示在传输过程中输出详细信息。
- -e:加密传输模式,表示在数据传输过程中进行加密。
- -z:压缩传输模式,表示在数据传输过程中进行压缩。
- -w:写入模式,表示在目标文件存在时覆盖目标文件。
- -a:追加模式,表示在目标文件存在时将源文件内容追加到目标文件。
- -chmod:权限模式,表示在传输文件时更改目标文件或目录的权限。
- -mtime:时间模式,表示在传输文件时更改目标文件或目录的修改时间。
rsync 常用参数rsync是一个常用的文件同步和备份工具,在Linux系统中使用非常广泛。
它具有强大的功能和灵活的选项,可以方便地进行本地和远程文件的同步、备份和恢复。
下面是rsync常用的参数详解。
1. -a, --archive该参数表示以归档模式进行文件同步,它会保留文件的所有属性和权限,并递归地同步子目录。
它是使用rsync进行备份或同步时最常用的参数。
2. -v, --verbose该参数表示在命令执行过程中显示详细的输出信息,包括同步的文件和目录。
通常情况下建议使用该参数,可以更清晰地了解rsync 的执行过程。
3. -r, --recursive该参数表示递归地同步源目录下的所有子目录和文件。
它会自动同步所有子目录中的文件,并保持目录结构的一致性。
4. -z, --compress该参数表示在传输过程中对数据进行压缩,可以加快数据传输的速度。
如果需要在网络速度较慢的环境中进行文件同步,可以考虑使用该参数来提高效率。
5. --delete该参数表示在目标目录中删除不存在于源目录中的文件。
它可以确保目标目录和源目录完全一致,即使在之前的同步中有文件被删除。
6. --exclude该参数表示忽略指定的文件或目录。
可以通过该参数来排除不需要同步的文件或目录,其格式可以是单个文件或目录的名称,也可以是用通配符表示的文件或目录。
7. --exclude-from与--exclude类似,但它从指定的文件中读取需要排除的文件和目录列表。
可以将需要排除的文件和目录写入一个文本文件,然后使用--exclude-from参数来应用这个列表。
8. -h, --human-readable该参数表示以人类可读的方式显示同步的进度和统计信息。
当同步大量文件时,可以使用该参数方便地查看进度。
9. --progress该参数显示同步的实时进度信息,包括每个文件的同步速度、总共完成的数据量和剩余的数据量等。
它可以让用户更直观地了解同步的情况。
Rsync12种故障排查及思路Rsync 故障排查整理Rsync服务常见问题汇总讲解:============================================================================================== 1 客户端的错误现象:No route to hostrsync服务端开启的iptables防⽕墙[root@nfs01 tmp]# rsync -avz /etc/hosts rsync_backup@172.16.1.41::backuprsync: failed to connect to 172.16.1.41: No route to host (113)rsync error: error in socket IO (code 10) at clientserver.c(124) [sender=3.0.6]异常问题解决:关闭rsync服务端的防⽕墙服务(iptables)[root@backup mnt]# /etc/init.d/iptables stopiptables: Setting chains to policy ACCEPT: filter [ OK ]iptables: Flushing firewall rules: [ OK ]iptables: Unloading modules: [ OK ][root@backup mnt]# /etc/init.d/iptables statusiptables: Firewall is not running.============================================================================================== 2 ERROR: The remote path must start with a module name not a /rsync客户端执⾏rsync命令错误:客户端的错误现象:[root@nfs01 tmp]# rsync -avz /etc/hosts rsync_backup@172.16.1.41::/backupERROR: The remote path must start with a module name not a /rsync error: error starting client-server protocol (code 5) at main.c(1503) [sender=3.0.6]异常问题解决:rsync命令语法理解错误,::/backup是错误的语法,应该为::backup(rsync模块)============================================================================================== 3 @ERROR: auth failed on module backup3. @ERROR: auth failed on module oldboy客户端的错误现象:[root@nfs01 tmp]# rsync -avz /etc/hosts rsync_backup@172.16.1.41::backupPassword:@ERROR: auth failed on module backuprsync error: error starting client-server protocol (code 5) at main.c(1503) [sender=3.0.6]异常问题解决:1. 密码真的输⼊错误,⽤户名真的错误2. secrets file = /etc/rsync.password指定的密码⽂件和实际密码⽂件名称不⼀致3. /etc/rsync.password⽂件权限不是6004. rsync_backup:123456密码配置⽂件后⾯注意不要有空格5. rsync客户端密码⽂件中只输⼊密码信息即可,不要输⼊虚拟认证⽤户名称============================================================================================== 4 @ERROR: Unknown module 'backup'4. Unknown module 'backup'[root@nfs01 tmp]# rsync -avz /etc/hosts rsync_backup@172.16.1.41::backup@ERROR: Unknown module 'backup'rsync error: error starting client-server protocol (code 5) at main.c(1503) [sender=3.0.6]异常问题解决:1、 /etc/rsyncd.conf配置⽂件模块名称书写错误2、配置⽂件中⽹段限制不对============================================================================================== 5 Permission denied[root@nfs01 tmp]# rsync -avz /etc/hosts rsync_backup@172.16.1.41::backupPassword:sending incremental file listhostsrsync: mkstemp ".hosts.5z3AOA" (in backup) failed: Permission denied (13)sent 196 bytes received 27 bytes 63.71 bytes/sectotal size is 349 speedup is 1.57rsync error: some files/attrs were not transferred (see previous errors) (code 23) at main.c(1039) [sender=3.0.6]异常问题解决:1. 共享⽬录的属主和属组不正确,不是rsync2. 共享⽬录的权限不正确,不是755============================================================================================== 6 chdir failed[root@nfs01 tmp]# rsync -avz /etc/hosts rsync_backup@172.16.1.41::backupPassword:@ERROR: chdir failedrsync error: error starting client-server protocol (code 5) at main.c(1503) [sender=3.0.6]异常问题解决:1. 备份存储⽬录没有建⽴2. 建⽴的备份存储⽬录和配置⽂件定义不⼀致[root@backup backup]# /etc/init.d/xinetd restartshell-init: error retrieving current directory: getcwd: cannot access parent directories: No such file or directoryStopping xinetd: [ OK ]Starting xinetd: shell-init: error retrieving current directory: getcwd: cannot access parent directories: No such file or directory [ OK ]说明:如果没有备份存储⽬录,xinetd服务都不能正确启动==============================================================================================7 invalid uid rsync[root@nfs01 tmp]# rsync -avz /etc/hosts rsync_backup@172.16.1.41::backupPassword:@ERROR: invalid uid rsyncrsync error: error starting client-server protocol (code 5) at main.c(1503) [sender=3.0.6]异常问题解决:rsync服务对应rsync虚拟⽤户不存在了==============================================================================================8 客户端已经配置了密码⽂件,但免秘钥登录⽅式,依旧需要输⼊密码password file must not be other-accessible[root@nfs01 tmp]# rsync -avz /etc/hosts rsync_backup@172.16.1.41::backup --password-file=/etc/rsync.password password file must not be other-accessiblecontinuing without password filePassword:sending incremental file listsent 26 bytes received 8 bytes 5.23 bytes/sectotal size is 349 speedup is 10.26异常问题解决:rsync客户端的秘钥⽂件也必须是600权限==============================================================================================9 rsync客户端连接慢问题错误⽇志输出2017/03/08 20:14:43 [3422] params.c:Parameter() - Ignoring badly formed line in configuration file: ignore errors2017/03/08 20:14:43 [3422] name lookup failed for 172.16.1.31: Name or service not known2017/03/08 20:14:43 [3422] connect from UNKNOWN (172.16.1.31)2017/03/08 20:14:43 [3422] rsync to backup/ from rsync_backup@unknown (172.16.1.31)2017/03/08 20:14:43 [3422] receiving file list2017/03/08 20:14:43 [3422] sent 76 bytes received 83 bytes total size 349正确⽇志输出2017/03/08 20:16:45 [3443] params.c:Parameter() - Ignoring badly formed line in configuration file: ignore errors2017/03/08 20:16:45 [3443] connect from nfs02 (172.16.1.31)2017/03/08 20:16:45 [3443] rsync to backup/ from rsync_backup@nfs02 (172.16.1.31)2017/03/08 20:16:45 [3443] receiving file list2017/03/08 20:16:45 [3443] sent 76 bytes received 83 bytes total size 349异常问题解决:查看⽇志进⾏分析============================================================================================== 10 rsync服务没有正确启动Connection refused (111)[root@oldboy-muban ~]# rsync -avz /etc/hosts rsync_backup@172.16.1.41::backuprsync: failed to connect to 172.16.1.41: Connection refused (111)rsync error: error in socket IO (code 10) at clientserver.c(124) [sender=3.0.6]解决 rsync服务没开启[root@oldboy-muban ~]# rsync --daemon[root@oldboy-muban ~]# ss -lntup |grep rsynctcp LISTEN 0 5 :::873 :::* users:(("rsync",1434,5))tcp LISTEN 0 5 *:873 *:* users:(("rsync",1434,4))[root@oldboy-muban ~]# rsync -avz /etc/hosts rsync_backup@172.16.1.41::backupPassword:sending incremental file listhostssent 196 bytes received 27 bytes 49.56 bytes/sectotal size is 349 speedup is 1.57============================================================================================== 11 port 22: Connection refused环境:本地服务器集群内部传输利⽤远程ssh 报错利⽤(telnet 172.16.1.31 22)排查服务监听状态后采取的解决⽅法[root@oldboy-muban ~]# rsync /etc/hosts 172.16.1.31:/tmpssh: connect to host 172.16.1.31 port 22: Connection refusedrsync: connection unexpectedly closed (0 bytes received so far) [sender]rsync error: error in rsync protocol data stream (code 12) at io.c(600) [sender=3.0.6]排错思路:[root@oldboy-muban ~]# ping 172.16.1.31PING 172.16.1.31 (172.16.1.31) 56(84) bytes of data.64 bytes from 172.16.1.31: icmp_seq=1 ttl=64 time=0.628 ms64 bytes from 172.16.1.31: icmp_seq=2 ttl=64 time=0.393 ms64 bytes from 172.16.1.31: icmp_seq=3 ttl=64 time=1.06 ms64 bytes from 172.16.1.31: icmp_seq=4 ttl=64 time=0.745 ms[root@oldboy-muban ~]# traceroute 172.16.1.31traceroute to 172.16.1.31 (172.16.1.31), 30 hops max, 60 byte packets1 nfs01 (172.16.1.31) 0.597 ms 0.189 ms 0.965 ms/etc/init.d/iptables statusiptables: Firewall is not running.[root@backup ~]#[root@backup ~]# netstat -lntup|grep 22p 0 0 10.0.0.31:22 0.0.0.0:* LISTEN 1187/sshd故障原因:⽆法连接telnet 172.16.1.31 22解决⽅法:[root@oldboy-backup-41]# vim /etc/ssh/sshd_config#Port 22#AddressFamily any#ListenAddress 10.0.0.31 改为 0.0.0.0#ListenAddress ::总结:内⽹传输通过SSH pro 22 表明22端⼝链接不上============================================================================================== 12 --passwd-file=/etc/rsync.passwd: unknown option 没有正确输⼊password⽂件名报错:--passwd-file=/etc/rsync.passwd: unknown option错误案例本地rsync.password ⽂件要保持⼀致缺少字母都会报错echo "123456">>/etc/rsync.passwd[root@nfs01 ~]# chmod 600 /etc/rsync.passwd[root@nfs01 ~]# ll /etc/rsync.passwd-rw------- 1 root root 7 Mar 9 13:47 /etc/rsync.passwd[root@nfs01 ~]# rsync -az -P /root/ rsync_backup@172.16.1.41::backup --passwd-file=/etc/rsync.passwdrsync: --passwd-file=/etc/rsync.passwd: unknown optionrsync error: syntax or usage error (code 1) at main.c(1422) [client=3.0.6]正确做法:[root@nfs01 ~]# echo "123456">>/etc/rsync.password[root@nfs01 ~]# chmod 600 /etc/rsync.password[root@nfs01 ~]# ll /etc/rsync.password-rw------- 1 root root 7 Mar 9 13:49 /etc/rsync.passwordrsync -az -P /server/files/secure-20161219 rsync_backup@172.16.1.41::backup --password-file=/etc/rsync.password sending incremental file listsecure-2016121951053780 100% 14.31MB/s 0:00:03 (xfer#1, to-check=0/1)rsync: mkstemp ".secure-20161219.lcnuWA" (in backup) failed: Permission denied (13)sent 2210982 bytes received 27 bytes 491335.33 bytes/sectotal size is 51053780 speedup is 23.09rsync error: some files/attrs were not transferred (see previous errors) (code 23) at main.c(1039) [sender=3.0.6][root@backup ~]# ls /backup/100.log cc.txt optimize-init_sys.shanaconda-ks.cfg1)可能是服务没有开启2)iptables SELinux3)本次遇见sshd传输受限限制了传输的ip(安全)==============================================================================================Rsync服务端排错思路m 查看rsync服务配置⽂件路径是否正确 /etc/rsyncd.confm 查看配置⽂件例的host allow,host deny,允许的ip⽹段是否是允许客户端访问的ip⽹段m 查看配置⽂件中path参数⾥的路径是否存在,权限是否正确(正常应为配置⽂件中的UUID参数对应的属主和组)m 查看rsync服务是否启动,端⼝是否存在 ps -ef netstat -lntupm 查看iptables防⽕墙和SELinux是否开启允许rsync服务通过,也可以关闭m 查看服务端rsync配置⽂件⾥的密码权限是否为600 密码⽂件格式是否正确,正确格式(⽤户名:密码)⽂件路径和配置⽂件⾥的secrect files 参数对应m 如果是推送数据,要查看,配置rsyncd.conf ⽂件中⽤户是否对模块下⽬录有可读的权限==============================================================================================客户端排错思路m 查看客户端rsync配置的密码⽂件是否为600的权限,密码⽂件格式是否正确,注意:仅需要有密码,并且和服务端的密码⼀致m ⽤telnet链接rsync服务器ip地址873端⼝,查看服务是否启动(可测试服务端防⽕墙是否阻挡telnet10.0.0.100 873)m 客户端执⾏命令是 rsync -avzP rsync_backup@10.0.0.100::backup/test/test/ --password-file=/etc/rsync.passwordm 此命令要记清楚尤其10.0.0.100::backup/test/处的双引号及随后的backup为模块名称==============================================================================================。
IOerror[rsync同出出现,IO,error,encountered,怎么办]服务器是采用windows版的cwRsync进行同步,本来同步得好好的把--delete 参数带上以后就出现错误IO error encountered — skipping file deletion找了很久也没找到解决方案,查了目录权限,服务器日志里也没看到磁盘出错的日志信息,在网上找到了一篇临时的解决方案。
仔细查看了一下rsync的参数,发现有一个选项是:--ignore-errors 即使出现I/O 错误也进行删除(即使出现I/O 错误也进行删除)于是加上了这个参数,再次执行同步,问题解决了。
但是至于为什么rsync会误报这个错误,目前我还没有找到原因,如果有哪一位知道的话,欢迎解惑。
附上rsync的常用参数选项,方便大家参考:选项说明-a, --archive 归档模式,表示以递归方式传输文件,并保持所有文件属性,等价于-rlptgoD (不包括-H)-r, --recursive 对子目录以递归模式处理-l, --links 保持符号链接文件-H, --hard-links 保持硬链接文件-p, --perms 保持文件权限-t, --times 保持文件时间信息-g, --group 保持文件属组信息-o, --owner 保持文件属主信息(super-user only)-D 保持设备文件和特殊文件(super-user only)-z, --compress 在传输文件时进行压缩处理--exclude=***** 指定排除一个不需要传输的文件匹配模式--exclude-from=FILE 从FILE 中读取排除规则--include=***** 指定需要传输的文件匹配模式--include-from=FILE 从FILE 中读取包含规则--copy-unsafe-links 拷贝指向SRC路径目录树以外的链接文件--safe-links 忽略指向SRC路径目录树以外的链接文件(默认)--existing 仅仅更新那些已经存在于接收端的文件,而不备份那些新创建的文件--ignore-existing 忽略那些已经存在于接收端的文件,仅备份那些新创建的文件-b, --backup 当有变化时,对目标目录中的旧版文件进行备份--backup-dir=DIR 与-b 结合使用,将备份的文件存到DIR 目录中--link-dest=DIR 当文件未改变时基于DIR 创建硬链接文件--delete 删除那些接收端还有而发送端已经不存在的文件--delete-before 接收者在传输之前进行删除操作(默认)--delete-during 接收者在传输过程中进行删除操作--delete-after 接收者在传输之后进行删除操作--delete-excluded 在接收方同时删除被排除的文件-e, --rsh=***** 指定替代rsh 的shell 程序--ignore-errors 即使出现I/O 错误也进行删除--partial 保留那些因故没有完全传输的文件,以是加快随后的再次传输--progress 在传输时显示传输过程-P 等价于--partial --progress--delay-updates 将正在更新的文件先保存到一个临时目录(默认为“.~tmp~”),待传输完毕再更新目标文件-v, --verbose 详细输出模式-q, --quiet 精简输出模式-h, --human-readable 输出文件大小使用易读的单位(如,K,M等)-n, --dry-run 显示哪些文件将被传输--list-only 仅仅列出文件而不进行复制--rsyncpath=***** 指定远程服务器上的rsync 命令所在路径--password-file=FILE 从FILE 中读取口令,以避免在终端上输入口令,通常在cron 中连接rsync 服务器时使用-4, --ipv4 使用IPv4-6, --ipv6 使用IPv6--version 打印版本信息--help 显示帮助信息注意:若使用普通用户身份运行rsync 命令,同步后的文件的属主将改变为这个普通用户身份。
Rsync常见错误:
问题一:
@ERROR: chroot failed
rsync error: error starting client-server protocol (code 5) at main.c(1522) [receiver=3.0.3]
原因:
服务器端的目录不存在或无权限。
创建目录并修正权限可解决问题。
问题二:
@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 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。
掠过软连接文件。
问题九:
rsync: read error: Connection reset by peer (104)
rsync error: error in rsync protocol data stream (code 12) at io.c(794) [receiver=3.0.2]
解决:很大可能是服务器端没有开启 rsync 服务,开启服务。
问题十:
@ERROR: failed to open lock file
rsync error: error starting client-server protocol (code 5) at main.c(1495) [receiver=3.0.2]
解决:配置文件 rsync.conf 中添加 lock file = rsyncd.lock 即可解决。
Rsync命令详细参数:
-v, --verbose 详细模式输出
-q, --quiet 精简输出模式
-c, --checksum 打开校验开关,强制对文件传输进行校验
-a, --archive 归档模式,表示以递归方式传输文件,并保持所有文件属性,等于-rlptgoD -r, --recursive 对子目录以递归模式处理
-R, --relative 使用相对路径信息
-b, --backup 创建备份,也就是对于目的已经存在有同样的文件名时,将老的文件重新命名为 ~filename。
可以使用--suffix 选项来指定不同的备份文件前缀。
--backup-dir 将备份文件(如~filename)存放在在目录下。
-suffix=SUFFIX 定义备份文件前缀
-u, --update 仅仅进行更新,也就是跳过所有已经存在于DST,并且文件时间晚于要备份的文件。
(不覆盖更新的文件)
-l, --links 保留软链结
-L, --copy-links 想对待常规文件一样处理软链结
--copy-unsafe-links 仅仅拷贝指向SRC 路径目录树以外的链结
--safe-links 忽略指向SRC 路径目录树以外的链结
-H, --hard-links 保留硬链结
-p, --perms 保持文件权限
-o, --owner 保持文件属主信息
-g, --group 保持文件属组信息
-D, --devices 保持设备文件信息
-t, --times 保持文件时间信息
-S, --sparse 对稀疏文件进行特殊处理以节省DST 的空间
-n, --dry-run 现实哪些文件将被传输
-W, --whole-file 拷贝文件,不进行增量检测
-x, --one-file-system 不要跨越文件系统边界
-B, --block-size=SIZE 检验算法使用的块尺寸,默认是700 字节.
-e, --rsh=COMMAND 指定使用rsh、ssh 方式进行数据同步
--rsync-path=PATH 指定远程服务器上的rsync 命令所在路径信息
-C, --cvs-exclude 使用和CVS 一样的方法自动忽略文件,用来排除那些不希望传输的文件
--existing 仅仅更新那些已经存在于DST 的文件,而不备份那些新创建的文件
--delete 删除那些DST 中SRC 没有的文件
--delete-excluded 同样删除接收端那些被该选项指定排除的文件
--delete-after 传输结束以后再删除
--ignore-errors 及时出现IO 错误也进行删除
--max-delete=NUM 最多删除NUM 个文件
--partial 保留那些因故没有完全传输的文件,以是加快随后的再次传输
--force 强制删除目录,即使不为空
--numeric-ids 不将数字的用户和组ID 匹配为用户名和组名
--timeout=TIME IP 超时时间,单位为秒
-I, --ignore-times 不跳过那些有同样的时间和长度的文件
--size-only 当决定是否要备份文件时,仅仅察看文件大小而不考虑文件时间--modify-window=NUM 决定文件是否时间相同时使用的时间戳窗口,默认为0 -T --temp-dir=DIR 在DIR 中创建临时文件
--compare-dest=DIR 同样比较DIR 中的文件来决定是否需要备份
-P 等同于 --partial
--progress 显示备份过程
-z, --compress 对备份的文件在传输时进行压缩处理
--exclude=PATTERN 指定排除不需要传输的文件模式
--include=PATTERN 指定不排除而需要传输的文件模式
--exclude-from=FILE 排除FILE 中指定模式的文件
--include-from=FILE 不排除FILE 指定模式匹配的文件
--version 打印版本信息
--address 绑定到特定的地址
--config=FILE 指定其他的配置文件,不使用默认的rsyncd.conf 文件
--port=PORT 指定其他的rsync 服务端口
--blocking-io 对远程shell 使用阻塞IO
-stats 给出某些文件的传输状态
--progress 在传输时现实传输过程
--log-format=formAT 指定日志文件格式
--password-file=FILE 从FILE 中得到密码。