#!/bin/sh RRD_PATH="/root/study/dnsquery.rrd" IMAGE_PATH="/www/htdocs/mrtg"
#DNS List host="a.dns.tw b.dns.tw 61.220.48.1 d.dns.tw ns.twnic.net e.dns.tw f.dns.tw" rrd_data="" for dns in $host do #取得 dig 最後面的所顯示的查詢時間 ? ? ? ? msec=`/bin/dig @$dns . ns | grep 'Query time' | sed -e 's/.*: \(.*\) [a-z].*/\1/'` ? ? ? ? if [ -z $msec ];then ? ? ? ? ? ? ? ? msec=-100 ? ? ? ? ? ? ? ? echo "$dns 沒有回應,請您注意"| mail MyEmail -s "$dns 無回應" ? ? ? ? fi ? ? ? ? rrd_data="$rrd_data:$msec" done now=`date +%s` echo $rrd_data rrdtool update $RRD_PATH ${now}${rrd_data}
time="day week " for t in $time do rrdtool graph $IMAGE_PATH/dnsquery-$t.jpg \ -t "DNS Query Response Time (${t}ly)" \ -w 600 -h 250 -s `date -d "-1 $t" +%s`? -v "msec"? -X b? ? ? ? ?\ ? ? ? ? DEF:a=dnsquery.rrd:a:MAX? ? ? ? \ ? ? ? ? DEF:b=dnsquery.rrd:b:MAX? ? ? ? \ ? ? ? ? DEF:c=dnsquery.rrd:c:MAX? ? ? ? \ ? ? ? ? DEF:d=dnsquery.rrd:d:MAX? ? ? ? \ ? ? ? ? DEF:ns=dnsquery.rrd:ns:MAX? ? ? \ ? ? ? ? DEF:f=dnsquery.rrd:f:MAX? ? ? ? \ ? ? ? ? DEF:g=dnsquery.rrd:g:MAX? ? ? ? \ ? ? ? ? CDEF:z0=-1,a,b,c,d,ns,f,g,+,+,+,+,+,+,7,/,*? ? ?\ ? ? ? ? CDEF:a1=a,3000,+? ? ? ? \ ? ? ? ? CDEF:a11=3000,a,a,-,+? ?\ ? ? ? ? CDEF:b1=b,2500,+? ? ? ? \ ? ? ? ? CDEF:b11=2500,a,a,-,+? ?\ ? ? ? ? CDEF:c1=c,2000,+? ? ? ? \ ? ? ? ? CDEF:c11=2000,a,a,-,+? ?\ ? ? ? ? CDEF:d1=d,1500,+? ? ? ? \ ? ? ? ? CDEF:d11=1500,a,a,-,+? ?\ ? ? ? ? CDEF:ns1=ns,1000,+? ? ? \ ? ? ? ? CDEF:ns11=1000,a,a,-,+? \ ? ? ? ? CDEF:f1=f,500,+? ? ? ? ?\ ? ? ? ? CDEF:f11=500,a,a,-,+? ? \ ? ? ? ? CDEF:g1=g,? ? ? ? ? ? ? \ ? ? ? ? AREA:z0#c0c0c0:"Average Response Time(msec)"? ? \ ? ? ? ? COMMENT:"\n"? ? \ ? ? ? ? AREA:a1#ff0000:"a.dns.tw"? ? ? ?\ ? ? ? ? GPRINT:a:MAX:"%12.0lf"? ? ? ? ? \ ? ? ? ? GPRINT:a:AVERAGE:"%12.0lf"? ? ? \ ? ? ? ? GPRINT:a:MIN:"%12.0lf"? ? ? ? ? \ ? ? ? ? GPRINT:a:LAST:"%12.0lf\n"? ? ? ?\ ? ? ? ? AREA:a11#ffffff? ? ? ? ? ? ? ? ?\ ? ? ? ? AREA:b1#800000:"b.dns.tw"? ? ? ?\ ? ? ? ? GPRINT:b:MAX:"%12.0lf"? ? ? ? ? \ ? ? ? ? GPRINT:b:AVERAGE:"%12.0lf"? ? ? \ ? ? ? ? GPRINT:b:MIN:"%12.0lf"? ? ? ? ? \ ? ? ? ? GPRINT:b:LAST:"%12.0lf\n"? ? ? ?\ ? ? ? ? AREA:b11#ffffff? ? ? ? ? ? ? ? ?\ ? ? ? ? AREA:c1#00ff00:"c.dns.tw"? ? ? ?\ ? ? ? ? GPRINT:c:MAX:"%12.0lf"? ? ? ? ? \ ? ? ? ? GPRINT:c:AVERAGE:"%12.0lf"? ? ? \ ? ? ? ? GPRINT:c:MIN:"%12.0lf"? ? ? ? ? \ ? ? ? ? GPRINT:c:LAST:"%12.0lf\n"? ? ? ?\ ? ? ? ? AREA:c11#ffffff? ? ? ? ? ? ? ? ?\ ? ? ? ? AREA:d1#008000:"d.dns.tw"? ? ? ?\ ? ? ? ? GPRINT:d:MAX:"%12.0lf"? ? ? ? ? \ ? ? ? ? GPRINT:d:AVERAGE:"%12.0lf"? ? ? \ ? ? ? ? GPRINT:d:MIN:"%12.0lf"? ? ? ? ? \ ? ? ? ? GPRINT:d:LAST:"%12.0lf\n"? ? ? ?\ ? ? ? ? AREA:d11#ffffff? ? ? ? ? ? ? ? ?\ ? ? ? ? AREA:ns1#0000ff:"ns.twnic.net"? \ ? ? ? ? GPRINT:ns:MAX:"%8.0lf"? ? ? ? ? \ ? ? ? ? GPRINT:ns:AVERAGE:"%12.0lf"? ? ?\ ? ? ? ? GPRINT:ns:MIN:"%12.0lf"? ? ? ? ?\ ? ? ? ? GPRINT:ns:LAST:"%12.0lf\n"? ? ? \ ? ? ? ? AREA:ns11#ffffff? ? ? ? ? ? ? ? \ ? ? ? ? AREA:f1#000080:"f.dns.tw"? ? ? ?\ ? ? ? ? GPRINT:f:MAX:"%12.0lf"? ? ? ? ? \ ? ? ? ? GPRINT:f:AVERAGE:"%12.0lf"? ? ? \ ? ? ? ? GPRINT:f:MIN:"%12.0lf"? ? ? ? ? \ ? ? ? ? GPRINT:f:LAST:"%12.0lf\n"? ? ? ?\ ? ? ? ? AREA:f11#ffffff? ? ? ? ? ? ? ? ?\ ? ? ? ? AREA:g1#ff8040:"g.dns.tw"? ? ? ?\ ? ? ? ? GPRINT:g1:MAX:"%12.0lf"? ? ? ? ?\ ? ? ? ? GPRINT:g1:AVERAGE:"%12.0lf"? ? ?\ ? ? ? ? GPRINT:g1:MIN:"%12.0lf"? ? ? ? ?\ ? ? ? ? GPRINT:g1:LAST:"%12.0lf\n"? ? ? \ ? ? ? ? COMMENT:"note:<0 means no response\n" done
|