为什么在没有压缩的情况下,rsync 发送的数量大于接收的数量?

为什么在没有压缩的情况下,rsync 发送的数量大于接收的数量?

我刚刚用 rsync 复制了很多数据:

rsync -avv --progress /src ./dst

最后,得到了这份报告:

total: matches=0  hash_hits=0  false_alarms=0 data=116101578747

sent 116,174,399,124 bytes  received 9,812,171 bytes  8,219,320.95 bytes/sec
total size is 116,118,167,547  speedup is 1.00

rsync 命令不应该使用任何压缩或任何东西,而且它是本地副本,那么为什么接收到的数量远低于发送的数量呢?

答案1

对于本地传输,rsync使用父客户端进程和子服务器进程,它们通过 UNIX 套接字或管道使用 Rsync 协议进行通信。显示的接收字节数与客户端父进程接收的字节数相对应。

答案2

我花了一些时间来研究手册页,我想我现在明白发生了什么:

  • 我正在使用-vv,这使我的冗长程度为 2
  • 根据rsync --info=help,在详细程度 2 下,我应该得到与使用相同的结果--info=COPY,DEL,FLIST,MISC,NAME,STATS,SYMSAFE,BACKUP,MISC2,MOUNT,NAME2,REMOVE,SKIP
  • infoSTATS选项包括“客户端从服务器端 rsync 接收到的所有非消息字节的计数”(手册页

在其内部发送一些数据也是如此rsync- 也许是为了验证复制是否正确完成或其他什么。这对我来说很有意义,尽管我不确定我是如何通过调用rsync本地副本来完成客户端/服务器设置的。

相关内容