GNU并行进度条在docker



我正在使用GNU Parallel来加快在docker容器中运行的构建过程中数千个文件的下载速度。这个操作很长,我想有一个进度条,它会定期记录一切都进行得很好。此过程也将异步运行,日志将在CloudWatch中收集。最好是使用现有的工具之一,而不是提出将打印$(find output_dir -type f | wc -l ) / $numfiles的自定义解决方案。

我已经为parallel使用了--bar参数,但不是在每次更改上打印一行(就像在docker外运行时一样),而是只有最后一行"(从100%开始)被打印出来,可能是因为只有最后一行包含一个新行。我也试过使用pv(特别是--interval标志,这将允许我每分钟只记录一次进度),但结果是一样的。

我可以使用其他工具来实现我的目标吗?或者我可以用某种方法让并行工作?

我得到一个不错的酒吧运行:

host$ docker run -it ubuntu:xenial /bin/bash
docker$ apt update
docker$ apt install parallel
docker$ parallel --bar true ::: {1..1000}

我通过运行得到相同的结果(除了似乎终端宽度被检测为80个字符):

docker run ubuntu:xenial /bin/bash -c 'apt update;apt install -y parallel; parallel --bar true ::: {1..1000}'

所以parallel似乎没有问题给你一个酒吧-即使在Docker内运行。