今天在同步数据的时候,发现一些删除的文件没有删除,赶紧查看一下发现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=PATTERN | 指定排除一个不需要传输的文件匹配模式 | 
| –exclude-from=FILE | 从 FILE 中读取排除规则 | 
| –include=PATTERN | 指定需要传输的文件匹配模式 | 
| –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=COMMAND | 指定替代 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=PROGRAM | 指定远程服务器上的 rsync 命令所在路径 | 
| –password-file=FILE | 从 FILE 中读取口令,以避免在终端上输入口令,通常在 cron 中连接 rsync 服务器时使用 | 
| -4, –ipv4 | 使用 IPv4 | 
| -6, –ipv6 | 使用 IPv6 | 
| –version | 打印版本信息 | 
| –help | 显示帮助信息 | 
注意:
若使用普通用户身份运行 rsync 命令,同步后的文件的属主将改变为这个普通用户身份。
若使用超级用户身份运行 rsync 命令,同步后的文件的属主将保持原来的用户身份。 
声明:本文内容来源于网络,版权归原作者所有,内容由互联网用户自发贡献自行上传,本网站不拥有所有权,未作人工编辑处理,也不承担相关法律责任。如果您发现有涉嫌版权的内容,欢迎发送邮件至:notice#cainiaojc.com(发邮件时,请将#更换为@)进行举报,并提供相关证据,一经查实,本站将立刻删除涉嫌侵权内容。