次のコマンドを実行しています。
ping ldap.corp.XXXXX.com
LDAPサーバーが起動します。
Pinging ldapeu.corp.XXXXX.com [XX.XXX.XXX.XX] with 32 bytes of data:
Reply from XX.XXX.XXX.XX: bytes=32 time<1ms TTL=252
LDAPサーバーがダウンしました:
ping: ldap.corp.XXXXX.com: Name or service not known
LDAPサーバーがダウンした時期を識別するためにKSHファイルにコードをどのように実装しますか?
答え1
ping
成功に応じて異なる終了コードを返します。少し異なる動作をすることができるいくつかのping実装がありますが、私は以下で引用しました。マンページの一つ
もし平らな応答パケットはまったく受信されず、コード1で終了します。パケットの場合計算そして締め切り指定されており、以下より小さい。計算パケットが受信された時間締め切り到達するとコード1で終了します。他のエラーでは、コード2で終了します。それ以外の場合は、コード0で終了します。これにより、終了コードを使用してホストがアクティブであることを確認できます。
pingは成功の場合は0以外の値を使用でき、失敗の場合は0以外の値を使用できます。echo $?
これを実行した後に確認できます。
fping
たとえば、モニタリング用の他のpingプログラムがあります。
したがって、簡単な作業を実行できます。
if ping -c 2 ldapeu.corp.XXXXX.com ; then
echo up
else
echo down
fi
(同様の方法を使用してif ping … >/dev/null 2>/dev/null; then
すべてのメッセージ印刷を削除できますping
。)
答え2
シャットダウン値を使用して、ping
ホストが起動していることを確認できます。
0 everything ok
1 no response or lost packages
2 other errors (unable to resolve is one of them)
たとえば、次のようになります。
ping -c 5 hostname || error_script.sh
error_script.sh
問題が発生した場合にのみ実行されます。