是否可以通过同步文件rsync
并rsync
仅比较 mtime 信息?
或者还有其他工具可以完成这项工作吗?
这意味着,如果 src 比目标新,则此类工具仅将 src 复制到目标。与 GNU 相当cp --update
- 但也通过 ssh ...
答案1
对的,这是可能的。rsync
也有--update
,但它rsync
仍然使用其增量传输算法,以防 src 较新。rsync
提供--whole-file
禁用此算法的选项。因此,
$ rsync --update --whole-file ...
应该具有这样的效果:src 文件仅在较新时才复制到目标。并且仅应使用 mtime 检查来实现此目的。
在特殊用例中避免使用增量传输算法有几个原因。主要是性能原因,也可能是非常特殊情况下的传输量原因。
引用手册页:
-W, --整个文件
使用此选项时,不使用 rsync 的增量传输算法,而是按原样发送整个文件。当源计算机和目标计算机之间的带宽高于磁盘带宽时(特别是当“磁盘”实际上是网络文件系统时),如果使用此选项,传输可能会更快。当源和目标都指定为本地路径时,这是默认设置,但前提是没有有效的批量写入选项。
关于网络文件系统的情况应该是最常见的一种。
此外,由于增量传输算法是一种启发式算法,您可以想象算法最终传输整个文件并仅增加(时间和空间)开销的文件。