#!/bin/sh 
RRD_PATH="/var/www/html/dnsquery/dnsquery.rrd" 
IMAGE_PATH="/var/www/html/dnsquery" 

cd /var/www/html/dnsquery/

#DNS List 
host="202.38.64.1 202.38.64.7 202.38.64.17 202.38.64.56" 
rrd_data="" 
for dns in $host 
do 
        msec=`dig @$dns . ns | grep 'Query time' |sed -e 's/.*: \(.*\) [a-z].*/\1/'` 
        if [ -z $msec ];then 
                msec=-100 
        fi 
        rrd_data="$rrd_data:$msec" 
done 
now=`date +%s` 
echo ${now}$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  \
        CDEF:z0=-1,a,b,c,d,+,+,+,7,/,* \
        CDEF:a1=a,300,+	\
        CDEF:a11=300,a,a,-,+	\
        CDEF:b1=b,200,+	\
        CDEF:b11=200,a,a,-,+    \
        CDEF:c1=c,100,+        \
        CDEF:c11=100,a,a,-,+    \
        CDEF:d1=d,0,+        \
        CDEF:d11=0,a,a,-,+    \
        AREA:z0#c0c0c0:"Response Time(msec)    Max           Avg           Min           Last"    \
        COMMENT:"\n"    \
        AREA:a1#ff0000:"202.38.64.1 "        \
        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:"202.38.64.7 "	\
	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:"202.38.64.17"     \
        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:"202.38.64.56"     \
        GPRINT:d:MAX:"%12.0lf"          \
        GPRINT:d:AVERAGE:"%12.0lf"      \
        GPRINT:d:MIN:"%12.0lf"          \
        GPRINT:d:LAST:"%12.0lf\n"        \
        AREA:d11#ffffff
done 
