13
pingコマンドで短いタイムアウトを設定するにはどうすればよいですか?
LAN上のすべてのホスト(約20個)をリストし、各ホストの横にpingステータスを書き込むスクリプトを作成しようとしています。DHCPリースファイルがあるため、すべてのIP(10.0.0.1、10.0.0.2など)があります。必要なのは、各ホストのpingステータスだけです。 したがって、私のスクリプトは各ホストに対して1つのpingを起動します。 ping -c 1 10.0.0.1 残念ながら、ホストがオフラインの場合、pingのタイムアウトには長い時間がかかります。確認man pingしましたが、タイムアウト遅延を設定する2つのオプションがあるようです:-w deadlineと-W timeout。私は後者に興味があると思います。 だから私はこれを試しました: ping -c 1 -W 1 10.0.0.1 ただし、オフラインホストごとに1秒待機するのはまだ長すぎます。私はそれを1秒未満に設定しようとしましたが、パラメータをまったく考慮していないようです: ping -c 1 -W 0.1 10.0.0.1 # timeout option is ignored, apparently タイムアウトをより低い値に設定する方法はありますか?そうでない場合、代替手段はありますか? 編集 OSはDebian Lennyです。 私がpingしようとしているホストは、実際にはアクセスポイントです。これらは、ユーザーと同じVLANおよびサブネット上にあります(展開と置換を簡単にするため)。これが、すべてのサブネットを(ping -bたとえば、)スキャンしたくない理由です。 編集#2 私はfping解決策を受け入れました(他のすべての回答に感謝します)。このコマンドは、私が探していたものを正確に実行します。 fping -c1 -t500 10.0.0.1 10.0.0.2 10.0.0.3 10.0.0.4 このコマンドの完了には最大500msかかり、すべてのホストのpingステータスを一度に表示します。 10.0.0.1 : [0], 84 …