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
parallel
xargs
プロセスがすぐに出力を印刷するのとは異なり、プロセス出力をキャプチャし、プロセスが完了したときにのみ印刷するという点で、出力は順次です。
~から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.