能让 rsync 只输出传输摘要(不逐文件刷屏)吗?

可以:rsync 加 --stats 在结束时输出传输统计摘要(文件数、字节数、速度、耗时),不加 -v 即可避免逐文件输出;要更安静用 -q。本文给出常用输出级别组合。

最佳实践
能让 rsync 只输出传输摘要(不逐文件刷屏)吗?封面

做法:加 --stats 选项,并且不要加 -v——rsync 默认只输出错误,结束时 --stats 会打印一份摘要:传输文件数、总字节数、实际传输量、速度、耗时。想彻底安静用 -q(连错误之外的一切都静默)。

基本用法

rsync -a --stats /src/dir/ /dst/dir/

输出示例(结尾处):

Number of files: 12,430
Number of files transferred: 152
Total file size: 4.21G bytes
Total transferred file size: 96.4M bytes
Literal data: 96.4M bytes
Matched data: 0 bytes
File list size: 287K
Total bytes sent: 97.1M
Total bytes received: 3.2K
sent 97.1M bytes  received 3.2K bytes  12.9M bytes/sec
total size is 4.21G  speedup is 43.36

关键指标:Number of files transferred(实际变了多少)、speedup(增量传输的效率倍数)。

输出级别菜单

选项组合 输出内容
(默认) 只有错误
--stats 错误 + 结尾统计摘要
-v 逐文件列表
-v --progress 逐文件 + 每个文件进度条
-q 连警告都静默,只剩严重错误
--stats -h 摘要用人类可读单位(K/M/G)

脚本中的推荐姿势

备份/同步脚本里既要不刷屏、又要留痕:

rsync -a --stats --log-file=/var/log/rsync-backup.log /src/ /dst/

详细进日志文件,终端只看摘要;cron 里跑也不会糊你一脸邮件。

观测云对照

同步任务的成功证据集中留存。 rsync 日志文件被 DataKit 采集后,每次同步的文件数与耗时在观测云可查可对趋势,同步失败/量异常(比如突然 0 文件)可以配告警。

常见问题(FAQ)

Q:--stats 里的 total size 和 transferred 差很多?
A:正常。total 是全部文件体积,transferred 是本次实际传输(增量算法只传变化部分),speedup 高说明增量生效了。

Q:想要"只列出会传什么"但不真传?
A:加 -n(dry run)配 -i(变更原因),先看清单再真跑。

Q:摘要能输出成机器可解析格式吗?
A:rsync 没有 JSON 输出;脚本里解析 --stats 文本或改用 rsync --out-format 自定义逐条格式后自行聚合。

获取专属方案

联系我们

加入社区

微信扫码
加入官方交流群

立即体验

在线开通,按量计费,真正的云服务!

立即开始

选择观测云版本

代码托管平台