我需要通过非常慢的链接复制到多个目的地的文件夹。
目前我使用find创build一个文本文件。
find "$sourcedir" -exec ls -la {} \; > "$statefile"
然后,我将它与以前创build的文件进行比较,以确定脚本是否应该退出或执行一些rsyncs。 最后,新的状态文件在下次脚本运行时变成旧的状态文件。
if ! diff "$statefile" "$statefile".old
有没有更好的方法来减less源的资源使用? (与Debian上的bash兼容。)
我应该只是运行第一个rsynd和更改后,其余的呢? 如何判断rsync是否在第一个rsync之后实际上修改了任何文件?
你想减lessfind,ls和diff使用的资源吗? 必须是大量的相关文件,我猜…
你显然可以通过使用-exec ... +而不是-exec ... ; -exec ... +保存大量的ls调用-exec ... ; 。 而且你可以考虑摆脱ls,因为它什么也找不到。 您可以使用find的printf值生成文件,创build或多或less相同的输出。 但是:ls也没有发现检测到某些ACL和扩展属性的变化。
一个完全不同的方法:FAM(文件更改监视器)。 你让内核告诉你(通过例如fileschanged )什么(可能)改变了。
还有一点提示:像rdiff-backup这样的东西应该比rsync需要更less的带宽,因为