Answers:
rsync
默认情况下,增量传输算法会执行此操作。引用rsync联机帮助页:
描述
Rsync是一种快速且用途广泛的文件复制工具。它可以通过任何远程Shell在本地复制到另一个主机,或从另一个远程复制到另一个rsync守护程序。它提供了大量选项,可控制其行为的各个方面,并允许非常灵活地指定要复制的文件集。它以其增量传输算法而著称,该算法通过仅发送源文件与目标中现有文件之间的差异来减少通过网络发送的数据量。Rsync被广泛用于备份和镜像,并作为日常使用的改进复制命令。
如果要禁用它,则必须使用-W
或--whole-file
选项。
-W,-整个文件
此选项禁用rsync的增量传输算法,该算法导致所有传输的文件全部发送出去。如果源计算机和目标计算机之间的带宽大于磁盘的带宽(特别是当“磁盘”实际上是网络文件系统时),则使用此选项时,传输可能会更快。当将源和目标都指定为本地路径时,这是默认设置,但是仅当没有批写入选项有效时才使用。
如果您真的知道文件做了多少更改,您甚至可以通过调整增量块大小来优化此增量传输行为:
-B,--block-size = BLOCKSIZE
这将强制rsync的增量传输算法中使用的块大小为固定值。通常根据要更新的每个文件的大小来选择它。有关详细信息,请参见技术报告。
如果您想了解有关算法本身的更多信息,可以在这里找到:Rsync算法
rsync
,默认情况下会表现为这种方式。只要较小的更改是对文件的较小更改,并且链接的两侧都已经存在文件(几乎相同的版本),则传输的数据应大大小于文件的总大小。在手册页的第一段中:“它以增量传输算法而著称,该算法通过仅发送源文件与目标中现有文件之间的差异来减少通过网络发送的数据量。”