我刚刚用 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
- info
STATS
选项包括“客户端从服务器端 rsync 接收到的所有非消息字节的计数”(手册页)
在其内部发送一些数据也是如此rsync
- 也许是为了验证复制是否正确完成或其他什么。这对我来说很有意义,尽管我不确定我是如何通过调用rsync
本地副本来完成客户端/服务器设置的。