если мне нужен небольшой индикатор прогресса в моей длительной работе, я могу использовать pipeviewer:

ssh pc2 cat some.file | pv -nC reading | gzip --fast | pv zipping > some.file.gz

это дает мне забавный маленький дисплей, рассказывающий, как быстро все происходит:

reading:  470MiB 0:00:18 [26.7MiB/s] [   <=>                              ]
zipping: 99.6MiB 0:00:18 [5.61MiB/s] [          <=>                       ]

но когда я делаю кучу вещей параллельно, выходные данные все портятся:

cat file.list | xargs -P 4 --replace={} sh -c "ssh pc2 cat {} | pv -nC r.{} | ..."

Есть ли способ сделать эту работу?

man pv говорит, что есть способ поочередно передать вывод pv в утилиту под названием dialog , но я не знаком с этим

2 ответа2

0

Если у вас установлен GNU Parallel:

cat file.list | parallel --tmux -P 4 'ssh pc2 cat {} | pv -nC r.{} | ...'

Это запустит работу в tmux . Затем вы можете прикрепить к tmux:

tmux attach

Если GNU Parallel не упакован для вашей системы, он должен установить его через 10 секунд:

(wget -O - pi.dk/3 || curl pi.dk/3/ || fetch -o - http://pi.dk/3) | bash

Чтобы узнать больше: посмотрите вводное видео, чтобы быстро познакомиться: https://www.youtube.com/playlist?list=PL284C9FF2488BC6D1

Пройдите учебник (man parallel_tutorial). Ваша командная строка будет любить вас за это.

0

Вы можете выполнить каждый экземпляр программы в новом терминале или в диалоговом окне. Для терминала

cat file.list | xargs -P 4 --replace={} gnome-terminal -x sh -c "ssh pc2 cat {} | pv -nC r.{} | ..."  

Для просмотра в диалоговом окне zenity

 cat file.list | xargs -P 4 --replace={} sh -c "ssh pc2 cat {} | pv -nC r.{} | zenity --text-info | ..."

Всё ещё ищете ответ? Посмотрите другие вопросы с метками .