Pingがタイムアウトした時間を表示する

  • 投稿日:
  • by
  • カテゴリ:

ネットワークシステムを管理する立場になると、なんだか不安定...ということがたまによくあります。
そうなると、どういうタイミングで落ちているのか、調子が悪いといわれた時間帯にパケットが落ちるようなことが起きていないか、などを監視する必要が出てきます。
そう言う場合、zabbixのicmpping[]なんかを使って監視するのが一番確実なのですが、すぐにそういった環境が用意できない場合もあるでしょうし、フリーソフト絶対禁止というポリシーをお持ちの企業さんなども多いと思います。

そんな時に、使える小ネタです

(1) コマンドプロンプトを起動し、downloadsなどの適当なワークフォルダをカレントディレクトリにします

(2) ping x.x.x.x -t >pingwatch.txt として実行します(リダイレクトしているpingwatch.txtは適宜変更してもOKです)

(3) Powershellを起動し、以下のコマンドを入力します。

Get-Content -path .\pingwatch.txt -Wait -Tail 100|Select-String -Pattern ".*タイムアウト.*"|%{(Get-Date).ToString() + " $_"}

こうすると、powershellがpingwatch.txtを監視して、pingがタイムアウトしたときに、powershellの標準出力に「日付 ~タイムアウトしました。」みたいな感じで表示されます。
上のスクリプトをリダイレクトすれば、きちんと残しておくこともできるでしょう。

こういったシチュエーションはあまりないかもですが、もしお役に立てたら幸いです。