rsync同出出现 IO error encountered 怎么办?

04-06

服务器是采用windows版的cwRsync进行同步,本来同步得好好的把 --delete 参数带上以后就出现错误

IO error encountered — skipping file deletion

找了很久也没找到解决方案,查了目录权限,服务器日志里也没看到磁盘出错的日志信息,在网上找到了一篇临时的解决方案。

rsync同出出现 IO error encountered 怎么办?

仔细查看了一下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 命令,同步后的文件的属主将保持原来的用户身份。

传输的命令模式是:

rsync [OPTION]... [USER@]HOST::SRC [DEST]

参数说明:

-v, --verbose 详细模式输出

-z, --compress 对备份的文件在传输时进行压缩处理

-r, --recursive 对子目录以递归模式处理

-t, --times 保持文件时间信息

-o, --owner 保持文件属主信息

-p, --perms 保持文件权限

-g, --group 保持文件属组信息

--progress 显示备份过程

--delete 删除那些DST中SRC没有的文件

--exclude "data/" 表示不对/home/user01/backup/data/目录下的文件进行备份