如何避免使用 rsync 复制损坏的文件

如何避免使用 rsync 复制损坏的文件

我有一个硬盘,里面有很多文件,不幸的是其中一些文件已损坏。我现在正尝试复制好的文件放入新硬盘中。我正在使用:

rsync -azP SRC TGT

当 rsync 遇到其中一个损坏的文件时,我可以在控制台中看到一条消息:

rsync: read errors mapping XXX: Input/output error (5)

在目标文件夹中,我仍然看到损坏的文件,我无法打开它并且必须手动删除它。

是否有任何选项可以告诉 rsync 在 ai/o 错误后不要复制文件?

答案1

即使它没有回答你的问题,这也将起到作用停止出现错误时:

rsync -aP --partial-dir=/cygdrive/j/broken /cygdrive/g /cygdrive/j/gee

不能完全读取的文件将保留在partial-dir/cygdrive/j是新的挂载点,也是/cygdrive/g旧的损坏磁盘的挂载点。

答案2

我认为您无法强制它因该错误而停止。您必须记录错误,清理问题文件并再次运行 rsync。

Mike Bombich 有一个很好的页面来描述你的错误—— 什么是“输入/输出”错误?如何解决它们?

“这些错误通常是由于介质损坏造成的 — 硬盘上的某些“扇区”出现故障,Mac OS X 无法再从中读取数据。在这种情况下,必须删除使用坏扇区的文件并从以前的备份中恢复。删除 CCC.log 文件中调用的文件后,您应该能够再次成功运行备份任务。”

尽管他指的是 CarbonCopyCloner,但它使用 rsync 来管理同步克隆,因此同样的方法也适用于这里。

顺便说一句,Apple 提供的版本 (2.6.9) 已经过时,无法正确处理 HFS+ 元数据。最新版本是 3.0.7,它支持正确备份的所有元数据。

Mike 有一个页面 (http://www.bombich.com/rsync.html) 记录新版本的编译、安装和使用。请务必检查他应用的开关和选项以进行备份。

相关内容