2005年4月22日

[linux-users:104864] Re: pingによる監視

楠根です。

補足説明ありがとうございます。さらに少しだけ補足。

dezawa wrote:
> Kusune さんので解説すると
>
> ping $host -c 3 -w 3 |
> gawk '/^rtt/ rtt で始まる行について
> {split($4,rtt,/\//)} 4番目の値を "/" で分解して、配列 rtt にしまい

> END{if(rtt[1]>50)exit(1)}' rtt の二つめの値が 50より大きかったら
^^一つめです(Cとは違うんですよね)
> 戻り値1で終了(つまり異常終了)
> そのほかは戻り値 0 で終了(正常終了)
> && echo 'good!' gawk が正常終了だったら これを実行
> || echo 'trouble?' 異常終了だったら これを実行

あとは出沢さんの解説の通りです。

> ん?
> rtt min/avg/max/mdev = 0.185/0.201/0.216/0.012 ms
> だから、rtt[1] ではなくて、rtt[4] ??

最小値を見たかったみたいなので rtt[1] だと思いますが、
平均なら rtt[2]、最大値なら rtt[3] ですね。

> 私的には gawk部分を
> gawk -F/ '/^rtt/ { if ($5+0 > 50) exit(1)}' にします。

まあ最後まで待つ必要はないかもですね。
文字列解釈に関しては、出沢さんの案の方が動作として無駄は少ないですけど、
少し意味がわかりにくくなるかなーと思います。
速度やリソース的にそれほど影響のない部分ですしね。

その方向でtuningするなら、私なら
gawk 'BEGIN{FS="[ /]"}/^rtt/{if($8>50)exit(1)}'
かなぁ。0は足さなくて大丈夫ですよ(試した)。
--
Takeshi Kusune <kusune@xxxxx>


投稿者 xml-rpc : 2005年4月22日 00:35
役に立ちました?:
過去のフィードバック 平均:(0) 総合:(0) 投票回数:(0)
本記事へのTrackback: http://hoop.euqset.org/blog/mt-tb2006.cgi/10074
トラックバック
コメント
コメントする




画像の中に見える文字を入力してください。