有没有任何方便的方法来跟踪多个管道命令的状态输出

有没有任何方便的方法来跟踪多个管道命令的状态输出

假设我有一个带有块设备的 serverA,我想通过我正在作为中继使用的计算机将其内容移动到 serverB 的块设备。这对于管道、缓冲区、dd 和类似工具非常方便。

为了监视进度并识别任何瓶颈,我喜欢跟踪每个命令的单独状态输出的进度。

除了通过运行多个终端、后台 (&)、通过 FIFO 循环输出等使这一行变得复杂之外,还有什么方法可以方便地对状态输出进行排序吗?

ssh serverA "sudo dd if=/dev/sdc status=progress | mbuffer" | mbuffer | ssh serverB "mbuffer | sudo dd of=/dev/sdc status=progress"

这为我提供了一行,可以在五个不同命令的状态之间快速切换,并且不会清除之间的行。例如,在以下各项之间交替(注意备用输出上的“00% full”):

in @ 6137 kiB/s, out @ 6137 kiB/s, 26.3 GiB total, buffer 100% full
30353129472 bytes (30 GB, 28 GiB) copied, 1158 s, 26.2 MB/s00% full

整齐的输出将使每个命令的输出一致地位于单独的行上。

相关内容