我正在寻找一个带有两个参数的工具:
- 要执行的命令,以及
- 目标值
然后,该工具应连续运行该命令,在命令的输出中查找数字,并估计该数字达到目标值所需的时间。
(我已经知道pv
和progress
,但这些分别仅限于通过管道和 coreutil 工具传输的数据。我正在寻找更通用的东西。)
例子:假设我想跟踪scp
文件传输。然后我会检查发送端的大小,并du -b
在接收端持续运行。它看起来像这样:
$ du -bs source_directory
5798324564
$ *sometool* 5798324564 "ssh someserver du -bs destination_directory"
2019-01-28 21:03:10 - 23.2% - ETA 22:15:10 (1h 12m)
2019-01-28 21:03:40 - 26.3% - ETA 22:14:57 (1h 11m)
2019-01-28 21:04:10 - 29.3% - ETA 22:14:49 (1h 10m)
...
<continous output until 100% is reached>
...
2019-01-28 22:15:05 - 100% - done.
$
从某种意义上说,它类似于watch
重复执行给定的命令,但区别在于,而不是印刷命令的输出,它应该寻找进度值在输出中,并计算 ETA。