#!/bin/bash # network.sh - Network usage stats # # Copyright 2010 Frode Petterson. All rights reserved. # See README.rdoc for license. rrdtool=$(which rrdtool); db=/home/pi/rrddata/network.rrd img=/var/www/html/rrd if=eth0 if [ ! -e $db ] then $rrdtool create $db \ -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 \ RRA:AVERAGE:0.5:60:43800 fi $rrdtool updatev $db -t in:out N:`/bin/cat /sys/class/net/eth0/statistics/rx_bytes`:`/bin/cat /sys/class/net/eth0/statistics/tx_bytes ` for period in hour day week month year 5year do $rrdtool graph $img/network-$period.png -s -1$period \ -t "Network traffic the last $period" -z \ -c "BACK#FFFFFF" -c "SHADEA#FFFFFF" -c "SHADEB#FFFFFF" \ -c "MGRID#AAAAAA" -c "GRID#CCCCCC" -c "ARROW#333333" \ -c "FONT#333333" -c "AXIS#333333" -c "FRAME#333333" \ -h 134 -w 543 -l 0 -a PNG -v "B/s" \ DEF:in=$db:in:AVERAGE \ DEF:out=$db:out:AVERAGE \ VDEF:minin=in,MINIMUM \ VDEF:minout=out,MINIMUM \ VDEF:maxin=in,MAXIMUM \ VDEF:maxout=out,MAXIMUM \ VDEF:avgin=in,AVERAGE \ VDEF:avgout=out,AVERAGE \ VDEF:lstin=in,LAST \ VDEF:lstout=out,LAST \ VDEF:totin=in,TOTAL \ VDEF:totout=out,TOTAL \ "COMMENT: \l" \ "COMMENT: " \ "COMMENT:Minimum " \ "COMMENT:Maximum " \ "COMMENT:Average " \ "COMMENT:Current " \ "COMMENT:Total \l" \ "COMMENT: " \ "AREA:out#EDA362:Out " \ "LINE1:out#F47200" \ "GPRINT:minout:%5.1lf %sB/s " \ "GPRINT:maxout:%5.1lf %sB/s " \ "GPRINT:avgout:%5.1lf %sB/s " \ "GPRINT:lstout:%5.1lf %sB/s " \ "GPRINT:totout:%5.1lf %sB \l" \ "COMMENT: " \ "AREA:in#8AD3F1:In " \ "LINE1:in#49BEEF" \ "GPRINT:minin:%5.1lf %sB/s " \ "GPRINT:maxin:%5.1lf %sB/s " \ "GPRINT:avgin:%5.1lf %sB/s " \ "GPRINT:lstin:%5.1lf %sB/s " \ "GPRINT:totin:%5.1lf %sB \l" > /dev/null done