ホストの可用性を確認するためのBash pingスクリプトファイル

ホストの可用性を確認するためのBash pingスクリプトファイル

実行時にホストが使用可能になるまでpingを開始し、ホストにアクセスできるようになったら、コマンドを実行して実行を停止するbashスクリプトをファイルに書き込もうとします。スクリプトを作成しようとしましたが、スクリプトはカウントが終了し、

そして、プロセスをバックグラウンドに置く必要がありますが、ドル$()記号を使用してスクリプトを実行すると、まだフォアグラウンドで実行されます。

#!/bin/bash
ping -c30 -i3 192.168.137.163
if [ $? -eq 0 ]
then /root/scripts/test1.sh
exit 0
else echo “fail”
fi

ベストアンサー1

私はこれを簡単な一行として使います。

while ! ping -c1 HOSTNAME &>/dev/null; do echo "Ping Fail - `date`"; done ; echo "Host Found - `date`" ; /root/scripts/test1.sh

HOSTNAMEpingしたいホストに置き換えます。


バックグラウンドに入れる部分を逃した。その行を次のようにシェルスクリプトに入れます。

#!/bin/sh

while ! ping -c1 $1 &>/dev/null
        do echo "Ping Fail - `date`"
done
echo "Host Found - `date`"
/root/scripts/test1.sh

バックグラウンドにするには、次のように実行できます。

nohup ./networktest.sh HOSTNAME > /tmp/networktest.out 2>&1 &

HOSTNAMEpingしたいホストと交換してください。この方法では、ホスト名をシェルスクリプトにパラメータとして渡します。

一般的な警告として、ホストが停止すると、ホストがシャットダウンまたは検索されるまで、このスクリプトはバックグラウンドでpingを続けます。だから私はあなたがこれを実行するとそれに留意します。これを忘れると、システムリソースが不足する可能性があるためです。

おすすめ記事