Bash パラレルコマンドは、コマンドを順次実行します。

Bash パラレルコマンドは、コマンドを順次実行します。

Bashから複数のファイルを並列にダウンロードしようとしましたが、GNUの並列性が見つかりました。とてもシンプルでシンプルに見えます。しかし、GNUを並列に動作させるのに問題があります。私は何が間違っていましたか?どんなアドバイスにも感謝します。ご覧のとおり、出力が非常に連続しているので、出力が毎回変わりたいと思います。 SOで同様の質問を見ましたが(GNU並列はまったく機能しません)、言及されたソリューションは私には適していませんでした。

svarkey@svarkey-Precision-5510:~$ seq 1 3 | xargs -I{} -n 1 -P 4 kubectl バージョン --short=true --context cs-prod{} --v=6
I0904 11:33:10.635636 24861 loader.go:375] ファイルから構成をロード中: /home/svarkey/.kube/config
I0904 11:33:10.640718 24863 loader.go:375] ファイルから構成をロード中: /home/svarkey/.kube/config
I0904 11:33:10.640806 24862 loader.go:375] ファイルから構成をロード中: /home/svarkey/.kube/config
I0904 11:33:11.727974 24863 round_trippers.go:443] GET https://kube-api.awsw3.cld.dtvops.net/version?timeout=32s 1086ミリ秒で200 OK
クライアントバージョン:v1.18.7
サーバーバージョン:v1.14.6
I0904 11:33:11.741985 24861 round_trippers.go:443] GET https://kube-api.awsw1.cld.dtvops.net/version?timeout=32s 1105ミリ秒で200 OK
クライアントバージョン:v1.18.7
サーバーバージョン:v1.14.6
I0904 11:33:11.859882 24862 round_trippers.go:443] GET https://kube-api.awsw2.cld.dtvops.net/version?timeout=32s 1218ミリ秒以内に200 OK
クライアントバージョン:v1.18.7
サーバーバージョン:v1.14.6
svarkey@svarkey-Precision-5510:~$ seq 1 3 | svarkey@svarkey-Precision-5510:~$ seq 1 3 |parallel -j 4 -I{} kubectl バージョン --short=true --context cs-prod{ } --v=6
クライアントバージョン:v1.18.7
サーバーバージョン:v1.14.6
I0904 11:33:18.584076 24923 loader.go:375] ファイルから構成をロード中: /home/svarkey/.kube/config
I0904 11:33:19.662197 24923 round_trippers.go:443] GET https://kube-api.awsw1.cld.dtvops.net/version?timeout=32s 1077ミリ秒で200 OK
クライアントバージョン:v1.18.7
サーバーバージョン:v1.14.6
I0904 11:33:18.591033 24928 loader.go:375] ファイルから構成をロード中: /home/svarkey/.kube/config
I0904 11:33:19.691343 24928 round_trippers.go:443] GET https://kube-api.awsw3.cld.dtvops.net/version?timeout=32s 1099ミリ秒で200 OK
クライアントバージョン:v1.18.7
サーバーバージョン:v1.14.6
I0904 11:33:18.591033 24924 loader.go:375] ファイルから構成をロード中: /home/svarkey/.kube/config
I0904 11:33:19.775152 24924 round_trippers.go:443] GET https://kube-api.awsw2.cld.dtvops.net/version?timeout=32s 1183ミリ秒で200 OK
svarkey@svarkey-Precision-5510:/tmp/parallel-20200822$ パラレル --version
GNU パラレル 20200822
著作権(C)2007-2020 Ole Tange、http://ole.tange.dkおよびフリーソフトウェア
財団の制限
ライセンス GPLv3+: GNU GPL バージョン 3 以降
これはフリーソフトウェアなので、自由に変更して再配布できます。
GNUの並列性は保証されません。

ウェブサイト: https://www.gnu.org/software/parallel

答え1

parallelxargsプロセスがすぐに出力を印刷するのとは異なり、プロセス出力をキャプチャし、プロセスが完了したときにのみ印刷するという点で、出力は順次です。

~からman parallel

   GNU parallel makes sure output from the commands is the same output as
   you would get had you run the commands sequentially. This makes it
   possible to use output from GNU parallel as input for other programs.

関連情報