トップ «前の日記(2016-06-13(Mon)) 最新 次の日記(2016-06-15(Wed))» 編集

屑俺日記

僕の備忘録(PC、UN*X、ネットワーク関連が中心)なんです。
自分の書いたところは適当(な時とか)に書き換えますので御了承を。


2016-06-14(Tue) 雨は降らないはずだけど

バスでping

one time ping

趣向を変えて、ping -c 1 を繰り返してみた。
man pageによれば、タイムアウトは10秒とのことである。

$ while :; do ping -c 1 $GLOBAL_IP; sleep 1; done
PING $GLOBAL_IP ($GLOBAL_IP) 56(84) bytes of data.
64 bytes from $GLOBAL_IP: icmp_seq=1 ttl=55 time=2105 ms
 
--- $GLOBAL_IP ping statistics ---
1 packets transmitted, 1 received, 0% packet loss, time 0ms
rtt min/avg/max/mdev = 2105.687/2105.687/2105.687/0.000 ms
PING $GLOBAL_IP ($GLOBAL_IP) 56(84) bytes of data.
 
--- $GLOBAL_IP ping statistics ---
1 packets transmitted, 0 received, 100% packet loss, time 0ms

のようなデータから、"100% packet loss" な行と"time="のある行を grepで掬い出す。

64 bytes from $GLOBAL_IP: icmp_seq=1 ttl=55 time=2105 ms
1 packets transmitted, 0 received, 100% packet loss, time 0ms

Rにかけるデータを抽出する。
paket loss をタイムアウト値で補完する。

$ awk 'BEGIN{s=1}\
>  {if($1==1){$7=10000} \
>   else{sub("time=","",$7)};\
>   {print s,$7}s+=1}' \
>   bus_trans.txt 
1 10000
2 6200
3 2752
.
.

Rもshebangでスクリプト化してみた。

#!/usr/bin/env Rscript
 
busdata=read.table("bus.txt")
png(filename="bus.png", width=640,height=480)
plot    (
        busdata,
        type="l", 
        ylim=c(0,9000),
        xlab="ping",
        ylab="ms",
        main="ping -c $GLOBAL_IP",
        sub=">8000 is PACKET LOSS!"
        )
dev.off()

タイムアウトをタイムアウトらしく表示させるとか、 もう少し色々できなければ...


リンクはご自由にどうぞ。でもURLや内容が変った場合はあしからず。

index.htmlは ここから。