pdsh
コマンドが複数のノードで正常に実行され、コマンドが任意のノードで失敗した場合は、終了コード(からpdsh
)がゼロではないと主張するために使用したいと思います。
次の例を考えてみましょう。
$ pdsh -w host1,host2 "exit 0"; echo $?
host1: host1
host2: host2
0
$ pdsh -w host1,host2 "exit 1"; echo $?
host1: host1: ssh exited with exit code 1
host2: host2: ssh exited with exit code 1
0
$ pdsh -w host1,host2,host3 "exit 1"; echo $?
host1: host1: ssh exited with exit code 1
host2: host2: ssh exited with exit code 1
host3: host3: ssh exited with exit code 255
0
2番目の例では、ゼロ以外の終了コードを返す必要があります。
3番目の例ではhost3
存在せず、終了コードはまだゼロです。
私は何を逃したことがありませんか?
ありがとう
答え1
pdsh
そのオプションと一緒に使用されます-S
。
マニュアルから:
-S
リモートコマンドで返された最大値を返します。
これpdsh
により、ユーティリティ自体の終了状態が、リモートホストで実行されるすべてのコマンドの最大終了状態に設定されます。