保存 rsync 的传输速度输出并绘制图表

保存 rsync 的传输速度输出并绘制图表

当执行时,rsync -P <source> <destination>它会在复制过程中输出传输速度,我相信每 1 秒更新一次。但它发生在一条线上。如何保存所有文本输出,以便可以绘制一段时间内的传输速度并查看发生了什么?

我正在排除故障并在 X 分钟内移动一个 100GB 的文件,有一段时间它以 400 MB/秒的速度爆发,有时会下降到 KB/秒;我想知道在这 X 分钟的传输过程中发生了什么,它的表现如何...就像在 Microsoft Windows 中,复制过程中出现的弹出窗口您可以直观地看到传输速度的高低。

答案1

更新后,进度线会用^M(回车)字符重复。因此,您可以转换^M为换行符,如果您愿意,可以 grep 出进度行:

$ rsync -P <source> <destination> | sed 's/\x0d/\x0a/g' | grep %
         32,768   0%    0.00kB/s    0:00:00
    171,311,104  74%  163.34MB/s    0:00:00
    230,258,742 100%  159.33MB/s    0:00:01 (xfr#1, to-chk=0/1)

or something like this, but at this point you can refine according to your needs:
$ rsync -P <source> <destination> | sed 's/\x0d/\x0a/g' | grep %|tail -n +2|awk '{print NR,$3}'
1 163.34MB/s
2 159.33MB/s

相关内容