–checksum和–ignore-times选项之间的Rsync差异
任何人都可以澄清rsync的–checksum和–ignore-times选项之间的区别吗?
我的理解如下: –checksum – 忽略倍 这是技术上的差异,但就我所知,它们在语义上是相同的. 所以,我想知道的是: >这两个选项之间的实际区别是什么? 解决方法
通常,当源文件和目标端的文件大小和时间相同时,rsync会跳过文件.这是一种启发式方法,通常是一个好主意,因为它可以防止rsync检查在源端和目标端非常可能相同的文件内容.
–ignore-times告诉rsync关闭文件时间和大小的启发式,从而无条件地将所有文件从源传输到目标.然后,rsync将继续读取源端的每个文件,因为它需要使用其delta传输算法,或者只是完整地发送每个文件,具体取决于是否指定了–whole-file选项. –checksum还修改了文件时间和大小的启发式,但在这里它忽略了时间并仅检查大小.传输源大小和目标端的文件大小不同,因为它们明显不同.具有相同大小的文件是校验和(在rsync版本3.0.0中使用MD5,或在早期版本中使用MD4),并且还会传输具有不同总和的文件. 如果源端和目标端大部分相同,则–checksum将导致大多数文件在两端进行校验和.这可能需要很长时间,但结果是最小的数据实际上将通过线路传输,特别是如果使用增量传输算法.当然,如果您的网络速度非常慢,而且CPU速度非常快,那么这只是一场胜利. 另一方面,–ignore-times将通过网络发送更多数据,并且它将导致所有源文件被读取,但至少它不会增加在源上计算许多加密强哈希值的额外负担和目标CPU.当网络速度很快和/或CPU相对较慢时,我希望此选项的性能优于–checksum. 我想我只会使用–checksum或–ignore-times,如果我将文件传输到目的地,在那里怀疑某些文件的内容已损坏,但修改时间没有改变.虽然可能还有其他用例,但我真的不能想到使用任何一个选项的任何其他好理由. (编辑:李大同) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |