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 pv
pv
sagt, 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.