xargs + pv = terminal bagunçado

0

Se eu quiser um pequeno indicador de progresso em minha operação de longa duração, posso usar pipeviewer :

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

isso me dá uma pequena exibição divertida dizendo o quão rápido as coisas estão indo:

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

mas quando eu faço um monte de coisas em paralelo, a saída fica toda confusa:

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

Existe alguma maneira de fazer isso funcionar?

man pv diz que há uma maneira de canalizar a saída de pv para um utilitário chamado dialog , mas não estou familiarizado com isso

    
por dvmlls 24.07.2014 / 23:57

2 respostas

0

Você pode executar cada instância do programa em um novo terminal ou em uma caixa de diálogo. Para terminal

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

Para ver na caixa de diálogo zenity

 cat file.list | xargs -P 4 --replace={} sh -c "ssh pc2 cat {} | pv -nC r.{} | zenity --text-info | ..."
    
por 29.07.2014 / 17:30
0

Se você tem o GNU Parallel instalado:

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

Isso iniciará os trabalhos em tmux . Você pode então anexar a tmux :

tmux attach

Se o GNU Parallel não for empacotado para o seu sistema, isso deve ser instalado em 10 segundos:

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

Para saber mais: assista ao vídeo de introdução para uma introdução rápida: link

Percorra o tutorial (man parallel_tutorial). Você linha de comando vou te amar por isso.

    
por 12.08.2014 / 00:58

Tags