我正在使用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内运行。