Si quiero un pequeño indicador de progreso en mi operación de larga duración, puedo usarlo.visor de tuberías:
ssh pc2 cat some.file | pv -nC reading | gzip --fast | pv zipping > some.file.gz
esto me muestra una pequeña pantalla divertida que me dice qué tan rápido van las cosas:
reading: 470MiB 0:00:18 [26.7MiB/s] [ <=> ]
zipping: 99.6MiB 0:00:18 [5.61MiB/s] [ <=> ]
pero cuando hago un montón de cosas en paralelo, el resultado se estropea:
cat file.list | xargs -P 4 --replace={} sh -c "ssh pc2 cat {} | pv -nC r.{} | ..."
¿Hay alguna manera de hacer funcionar esto?
man pv
dice que hay una manera de canalizar de forma circular la salida de pv
a una utilidad llamada dialog
, pero no estoy familiarizado con eso
Respuesta1
Puede ejecutar cada instancia del programa en una nueva terminal o en un cuadro de diálogo. Para terminales
cat file.list | xargs -P 4 --replace={} gnome-terminal -x sh -c "ssh pc2 cat {} | pv -nC r.{} | ..."
Para ver en el cuadro de diálogo zenity
cat file.list | xargs -P 4 --replace={} sh -c "ssh pc2 cat {} | pv -nC r.{} | zenity --text-info | ..."
Respuesta2
Si tienes instalado GNU Parallel:
cat file.list | parallel --tmux -P 4 'ssh pc2 cat {} | pv -nC r.{} | ...'
Esto iniciará los trabajos en tmux
. Luego puede adjuntar a tmux
:
tmux attach
Si GNU Parallel no está empaquetado para su sistema, esto debería instalarlo en 10 segundos:
(wget -O - pi.dk/3 || curl pi.dk/3/ || fetch -o - http://pi.dk/3) | bash
Para obtener más información: mire el vídeo de introducción para obtener una introducción rápida: https://www.youtube.com/playlist?list=PL284C9FF2488BC6D1
Siga el tutorial (man paralelo_tutorial). Tu línea de comando te amará por ello.