bash
私はシェルコマンド(主に)を使用して特定のホストが動作していることを確認するためのより多くの方法を見つけようとしています。理想的には、ホスト名とIPアドレスの両方を使用します。現在私が知っている唯一の基本的な方法はpingであり、おそらくスクリプトに統合されているかもしれません。ここで説明されているとおりです。別のアイデアがありますか?
ベストアンサー1
ping
はいホストが生きていて接続されているかどうかをテストする方法です。 (ホストは有効になっていても接続が失われたり遅く応答したりすると、死んだホストとは区別できません。)
このコマンドがサポートするオプションはping
システムによって異なります。永久に繰り返されず、応答を受け取らずに数秒後に返されることを確認する必要があります。
FreeBSDおよびLinux iputilの場合は、ping -c 1 -W 1 >/dev/null
単一のpingを送信して1秒間待ちます。出力を解析する必要はありません。コマンドがpingを受け取ると0が返され、それ以外の場合は0以外の値が返されます(未知のホスト名、ホストへのパスなし、応答なし)。いくつかの実装には他のフラグが必要な場合があります(FreeBSDには-w
ありません-W
)。システムのマニュアルを確認してください。
if ping -c 1 -W 1 "$hostname_or_ip_address"; then
echo "$hostname_or_ip_address is alive"
else
echo "$hostname_or_ip_address is pining for the fjords"
fi