これが私の状況の短いバージョンです。現在の ISP が正常に動作していないため、動作していない証拠として ping の成功と失敗をログに記録したいと考えています。Linux を使用しますが、Windows でも問題ありません。私は読んでいますが、私が知る限り、シェルスクリプトまたはPythonコードが最適です.
より詳細に説明すると、Web サイトで 5 秒ごとに 1 回 ping を実行したいと考えています。ping が成功した場合は、ping の正常な結果がファイルに出力されます。ただ、Ping の失敗はタイムアウトが長いので、4 秒程度で ping が成功しなかった場合、ping の試行を停止し、それでも "1 パケット" で完全な ping データを出力するようにプログラムを作成したいと考えています。送信済み、0 受信済み」など、時間がなくなった場合と同様です。
これが私がこれまでに持っているものです:
while true
do
ping -c1 -w4 www.example.com >> log.txt
sleep 5
done
残念ながら、2 つの問題があります。まず、「-w4」は、思ったように 4 秒後にタイムアウトしません。そして第二に、「睡眠」はすでに費やされた時間に追加されます. したがって、ping に 3 秒かかる場合、ループには 8 秒かかります。成功、失敗をカウントし、ダウン タイムの割合を出力する別のプログラムを作成するので、失敗時にループに多くの余分な時間がかかることは受け入れられません。
それで、私が必要とするものを考えると、これを行う最善の方法は何ですか? ニーズを満たすために私が改善したことはありますか?助けてくれてありがとう!
PS: シェル スクリプトの作成についてはほとんど何も知りません (端末の操作は得意ですが)。Python についてはさらに詳しく知っています (C++ は知っていますが)。あらかじめお詫び申し上げます。