#!/bin/bash # interface.sh - Network usage stats # # Copyright 2010 Frode Petterson. All rights reserved. # See README.rdoc for license. rrdtool=$(which rrdtool); db0=/home/pi/rrddata/eth0.rrd db1=/home/pi/rrddata/wlan0.rrd img=/var/www/html/rrd/ if [ ! -e $db0 ] then $rrdtool create $db0 \ -s 5 \ DS:in:DERIVE:600:0:12500000 \ DS:out:DERIVE:600:0:12500000 \ RRA:AVERAGE:0.5:1:576 \ RRA:AVERAGE:0.5:6:672 \ RRA:AVERAGE:0.5:24:732 \ RRA:AVERAGE:0.5:144:1460 fi if [ ! -e $db1 ] then $rrdtool create $db1 \ -s 5 \ DS:in:DERIVE:600:0:12500000 \ DS:out:DERIVE:600:0:12500000 \ RRA:AVERAGE:0.5:1:576 \ RRA:AVERAGE:0.5:6:672 \ RRA:AVERAGE:0.5:24:732 \ RRA:AVERAGE:0.5:144:14 fi in0=$(/bin/cat /sys/class/net/eth0/statistics/rx_bytes) out0=$(/bin/cat /sys/class/net/eth0/statistics/tx_bytes) in1=$(/bin/cat /sys/class/net/wlan0/statistics/rx_bytes) out1=$(/bin/cat /sys/class/net/wlan0/statistics/tx_bytes) $rrdtool updatev $db0 -t in:out N:$in0:$out0 $rrdtool updatev $db1 -t in:out N:$in1:$out1 for period in hour day week month year do $rrdtool graph $img/eth0-$period.png -s -1$period \ -t "Network Traffic on eth0" \ --lazy \ -l 0 -a PNG -v bytes/sec \ DEF:in=$db0:in:AVERAGE \ DEF:out=$db0:out:AVERAGE \ CDEF:out_neg=out,-1,* \ "AREA:in#32CD32:Incoming" \ "LINE1:in#336600" \ "GPRINT:in:MAX: Max\\: %5.1lf %s" \ "GPRINT:in:AVERAGE: Avg\\: %5.1lf %S" \ "GPRINT:in:LAST: Current\\: %5.1lf %Sbytes/sec\\n" \ "AREA:out_neg#4169E1:Outgoing" \ "LINE1:out_neg#0033CC" \ "GPRINT:out:MAX: Max\\: %5.1lf %S" \ "GPRINT:out:AVERAGE: Avg\\: %5.1lf %S" \ "GPRINT:out:LAST: Current\\: %5.1lf %Sbytes/sec" \ "HRULE:0#000000" \ -h 134 -w 543 -l 0 -a PNG -v "B/s" > /dev/null $rrdtool graph $img/wlan0-$period.png -s -1$period \ -t "Network Traffic on wlan0" \ --lazy \ -l 0 -a PNG -v bytes/sec \ DEF:in=$db1:in:AVERAGE \ DEF:out=$db1:out:AVERAGE \ CDEF:out_neg=out,-1,* \ "AREA:in#32CD32:Incoming" \ "LINE1:in#336600" \ "GPRINT:in:MAX: Max\\: %5.1lf %s" \ "GPRINT:in:AVERAGE: Avg\\: %5.1lf %S" \ "GPRINT:in:LAST: Current\\: %5.1lf %Sbytes/sec\\n" \ "AREA:out_neg#4169E1:Outgoing" \ "LINE1:out_neg#0033CC" \ "GPRINT:out:MAX: Max\\: %5.1lf %S" \ "GPRINT:out:AVERAGE: Avg\\: %5.1lf %S" \ "GPRINT:out:LAST: Current\\: %5.1lf %Sbytes/sec" \ "HRULE:0#000000" \ -h 134 -w 543 -l 0 -a PNG -v "B/s" > /dev/null done