rsync开启传输压缩最常用且推荐的写法是-avz:-a保留元数据,-v显示详细过程,-z启用zlib实时压缩,仅对增量差异块压缩,不改变文件内容,目标端直接获得原始文件。

在 rsync 中开启传输压缩,直接加 -z 参数就行。它会在数据发出去前自动压缩,到达目标端再解压,整个过程对用户透明,不改变文件内容,只降低网络传输量。
压缩怎么开最有效
最常用也最推荐的写法是组合使用:-avz
- -a:归档模式,保留权限、时间戳、软链接等元数据
- -v:显示详细过程,方便确认哪些文件被传了
- -z:启用 zlib 压缩,对传输中的数据块实时压缩
例如同步本地项目到远程服务器:
rsync -avz ./project/ user@server:/var/www/
压缩强度可以调,但通常不用动
默认压缩级别是 6(中等),平衡速度与压缩率。真有需要才调整:
- 跨地域、带宽窄(比如 10Mbps 以下):用 --compress-level=6 或 =7,多压一点换带宽
- 内网或高带宽链路(如千兆局域网):用 --compress-level=1,省 CPU,压缩收益不大
- 完全不想压:去掉 -z,或显式禁用 --compress-level=0(部分版本支持)
压缩只作用于“变化的部分”
rsync 是增量同步工具,压缩只对实际要传的差异块生效。没改过的文件不参与压缩传输,也不会重复压缩——这点和 tar + gzip 全量打包完全不同。所以即使源目录很大,只要改动小,压缩带来的带宽节省就非常可观。
注意别和本地压缩混淆
-z 不是把整个目录先 zip 再传,它是在 TCP 连接上传输时动态压缩字节流。所以:
- 目标端看到的是原始未压缩文件
- 不需要提前打包或解包操作
- 配合 --delete 或 --exclude 也能正常工作











