rsync 如何处理文件损坏?

dr_*_*dr_ 5 backup rsync

作为备份过程,我想定期将文件(例如通过rsync)从 Windows 计算机同步到外部硬盘。

但是,我想知道文件损坏的情况。如果主机上的文件损坏,其校验和会发生变化,rsync 会将其视为已修改,并将从主机复制损坏的文件,覆盖硬盘上的良好副本。

rsync 是否有任何机制可以防止这种情况发生?如果不是,如何避免这种情况?

编辑:为了澄清,我需要判断校验和是否更改是因为我向文件添加了新内容还是因为文件已损坏。在这两种情况下,rsync 都会将文件视为“已修改”,并将其写入 HD 上的旧版本。在第一种情况下,rsync 正在执行我想要的操作,在第二种情况下,它正在用垃圾擦除我的旧有效文件。

use*_*ser 3

通常处理此问题的方式与处理任何其他想要回滚到文件的先前版本的情况的方式相同:增量备份。

\n\n

这里的想法是,您仅在内容更改时才实际复制文件。对于备份介质上文件的任何其他副本,您只需参考以前的版本即可。如果当前文件被损坏,这允许您返回到文件的先前版本,当然,这个想法是,如果您没有及时注意到损坏,那么该文件可能不是很重要首先。

\n\n

--link-destrsync 通过命令行参数支持这一点(至少在 *nix 上) 。

\n\n

为了使其正常工作,您还需要一些东西来清理旧副本,而 rsync 则不需要;为此你需要其他东西。否则,您的磁盘最终将填满,您将必须手动从目标媒体中删除文件。

\n\n

并回答直接问题:rsync 没有真正处理损坏的文件。它可能会处理无法读取的文件,除非您在就地替换模式下运行它,但它不会查看该 JPEG 图像或 PDF 文档并确定其格式错误,导致其在以下情况下看起来很奇怪:呈现。那不是它的工作。

\n\n

将此注释与“为什么 RAID 不是备份?”答案进行比较。关于服务器故障,作者:Jared Oberhaus

\n\n
\n
\n

备份会拒绝复制损坏的文件吗?

\n
\n\n

即使备份复制了损坏或错误的数据,备份的重点是您可以而且应该拥有多个副本。例如,上一小时、昨天、上周等。您可以通过在存储设备上使用旋转快照来获得类似的效果。

\n
\n\n

相关的,用J\xc3\xb6rg W Mittag在同一问题的另一个答案中的话来说,强调了冗余和备份之间的区别:

\n\n
\n

如果你不小心用垃圾覆盖了你的博士论文,冗余可以确保你拥有多份垃圾副本,以防其中一份变坏。备份可确保您可以恢复您的博士论文。

\n
\n