xargs + pv = kaputtes Terminal

xargs + pv = kaputtes Terminal

Wenn ich einen kleinen Fortschrittsindikator für meinen lang laufenden Vorgang haben möchte, kann ich verwendenPipeviewer:

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

Dadurch erhalte ich eine nette kleine Anzeige, die mir sagt, wie schnell alles geht:

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

aber wenn ich mehrere Dinge parallel mache, gerät die Ausgabe völlig durcheinander:

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

gibt es eine Möglichkeit, dies zum Laufen zu bringen?

man pvpvsagt, es gibt eine Möglichkeit, die Ausgabe von umständlich in ein Dienstprogramm namens umzuleiten dialog, aber damit bin ich nicht vertraut

Antwort1

Sie können jede Programminstanz in einem neuen Terminal oder in einem Dialogfeld ausführen. Für Terminal

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

Zur Ansicht im Dialogfeld zenity

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

Antwort2

Wenn Sie GNU Parallel installiert haben:

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

Dadurch werden die Jobs in gestartet tmux. Sie können dann Folgendes anhängen tmux:

tmux attach

Wenn GNU Parallel nicht für Ihr System gepackt ist, sollte die Installation folgendermaßen in 10 Sekunden erfolgen:

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

Um mehr zu erfahren: Sehen Sie sich das Einführungsvideo für eine kurze Einführung an: https://www.youtube.com/playlist?list=PL284C9FF2488BC6D1

Gehen Sie das Tutorial durch (man parallel_tutorial). Ihre Kommandozeile wird es Ihnen danken.

verwandte Informationen