rsync 复制整个文件而不是差异文件

rsync 复制整个文件而不是差异文件

我有 2 个包含少量文件的远程文件夹。我用它rsync来同步这两个文件。问题是,在第一台服务器上,文件每天都会严格地附加新数据。

当我调用它时,rsync我觉得它再次复制了整个文件。

我的以下调用正确吗?

  rsync -rtvu src_fld/  user@myserver:/opt/dst_fldr/

我的理解是rsync能够计算两个文件之间的差异,因此我期待非常快速的更新。

答案1

rsync 正在做很多事情 - 在你的情况下,它可能会在双方建立文件列表,比较它们,找到要传输的文件,读取双方的文件,计算双方的滚动校验和,交换校验和信息并传输不同的块。这个过程需要花费一些时间,特别是如果你有大文件(千兆字节级)或大量文件(数十万个)。由于发送方和接收方的计算和 I/O 开销很大,因此不一定会加速传输,它只是可能减少通过链路传输的数据量。

如果您的情况中文件更改只是附加(日志不断增长的情况就是如此),请考虑使用--append-verify选项,该选项rsync将跳过整个计算密集型滚动校验和计算,只传输较大文件的尾部以填充较小文件。它还将在传输后通过运行单文件校验和操作来验证发送方和接收方的文件是否相同。

相关内容