私は分散Linuxシステムで作業しています。私のBashスクリプトから次の出力をgrepしたいと思います。
ssh $ipaddress ibstat
コンピュータがダウンすると、上記のコマンドは中断されます。ゼロ以外の値で中断および終了bashスクリプトを処理する方法は?
答え1
ConnectTimeOut
特定の環境に合わせて調整する必要がある低値オプションを使用してください。
$ ssh -o ConnectTimeout=2 $ipaddress
ssh: connect to host 192.168.123.123 port 22: Connection timed out
$ echo $?
255
テストできる戻り値を取得することもできます。つまり、255
コマンドの処理中にエラーが発生したことを意味します。
答え2
次のtimeout
ユーティリティを選択できます。
timeout 5 ssh $ipaddress ibstat
5秒後、ゼロ以外の結果で終了します。これをibstatが完了するのに十分な合理的な値に設定してください。
答え3
まず、ホストの可用性を確認してください。
if ping -c 1 $ipaddress &> /dev/null
then
ssh $ipaddress ibstat
else
exit 1
fi