長時間実行中の操作の進行状況を示す小さなインジケーターが必要な場合は、パイプビューア:
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
が、私はそれについてよく知りません
答え1
各プログラムインスタンスは、新しいターミナルまたはダイアログボックスで実行できます。ターミナルの場合
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 | ..."
答え2
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) を実行してください。コマンド ラインが役に立つはずです。