rsync标记与时间戳完全相同的文件

前端之家收集整理的这篇文章主要介绍了rsync标记与时间戳完全相同的文件前端之家小编觉得挺不错的,现在分享给大家,也给大家做个参考。
当我执行rsync –dry-run -rv时,rsync列出了除时间戳之外相同的文件.

我的理解是,只有这些标志(它们并没有真正改变比较行为),rsync会看到不同的时间戳,检查文件大小(当然,它们是相同的),然后最终做一个校验和标记它们以进行更新之前的文件.如果校验和匹配,即使时间戳不同,也不会更新文件.

我有什么误会?

解决方法

看起来你理解的东西很好,只有一个例外.当您处于–dry-run模式时,rsync不会计算校验和,因此您可能会看到在校验和完成后不会传输的文件.

由于时间戳不同,rsync知道它将被更新,但由于它处于干运行模式,因此无法报告需要更新的唯一内容是时间戳.

I’m using it to monitor failure of synchronization between remote machines… so it’s really just a remote diff.

我不知道如何在干运行模式下强制校验和.

既然听起来你试图强制比较本地和远程的同步文件集,那么你可能想尝试这样的东西吗? (如果你想要更快的速度,可以用sha1或md5替换sha256deep).

diff -u <( /usr/bin/sha256deep -l -z -r -o f path | sort -k 3 ) \
        <( ssh remote /usr/bin/sha256deep -l -z -r -o f path | sort -k 3 )`

该命令将在本地和远程计算每个文件的md5校验和.这两个列表在路径上排序,diff将显示校验和中的差异.

猜你在找的Linux相关文章