rrdtool
跳转到导航
跳转到搜索
示例
start=$(date +'%s')
ping 192.168.2.1 | tee -i ping.log
# set n to the correct value
n=xxx
rm -f ping.rrd
rrdtool create ping.rrd --start=$start -s1 DS:ping:GAUGE:1:0:U RRA:AVERAGE:0.5:1:$n
grep -oP '\d+\sttl\S+ \S+' ping.log | sed 's/ttl.*=//g' | awk -vstart=$start '{print $1+start ":" $2}' | xargs -n 1000 rrdtool update ping.rrd
for i in 1 5 15; do rrdtool graph ping_$i.png --start=$start --end=$(( $start + $n )) -S $i -t 'ping 延迟' --vertical-label=秒 --width=$n --height=700 -r -u 1.2 DEF:v=ping.rrd:ping:AVERAGE CDEF:s=v,1000,/ CDEF:a=s,UN,10,UNKN,IF 'AREA:a#dd7777' 'AREA:s#00dd00'; done
sxiv ping_*(Oc)