使用rsnapshot时能否显示rsync --info=progress2的实时进度信息?
使用rsnapshot时能否显示rsync --info=progress2的实时进度信息?
嘿,我太懂这种纠结了!之前我也是因为Timeshift不保存扩展属性导致恢复后系统出问题,转用rsnapshot的时候,也碰到过一模一样的情况——明明在配置里加了--info=progress2,却看不到rsync那种实时滚动的进度条,只能干等着,急死人!
别担心,是可以实现的,问题出在rsnapshot默认的输出处理方式上,它会把rsync的实时输出给“藏”起来,咱们只要调整两个地方就行:
1. 确认配置里的rsync参数设置
打开你的rsnapshot配置文件(一般是/etc/rsnapshot.conf),找到rsync_long_args这一行,确保已经把--info=progress2加进去了,比如:
rsync_long_args --delete --numeric-ids --relative --delete-excluded --info=progress2
同时检查rsync_short_args,确保没有-q(静默模式),默认一般是-a,没问题的话就继续下一步。
2. 让rsnapshot实时输出rsync的进度
rsnapshot默认会把rsync的输出缓冲起来,或者重定向到日志文件,所以手动运行的时候,咱们需要用两个小技巧:
- 第一,运行rsnapshot时加上
-v参数(verbose模式),让它不要隐藏rsync的输出; - 第二,用
stdbuf命令强制无缓冲输出,这样进度条就能实时滚动显示了。
举个例子,如果你要运行daily快照,命令就是:
stdbuf -oL -eL rsnapshot -v daily
这样就能看到熟悉的rsync进度条了,比如:
71,256,901,358 99% 36.30MB/s 0:31:12 (xfr#173389, ir-chk=1000/361047)
要是你只是偶尔手动运行看进度,这个方法完全够用;如果是cron任务里运行,其实也没必要实时输出,日志里会记录完整的同步信息。
备注:内容来源于stack exchange,提问作者DasKraut




