#!/bin/sh cd /path/to || exit 1 interface=tl0 rrd=traffic.rrd graph=traffic.png export PATH="$PATH:/usr/local/bin" if [ ! -f "$rrd" ] then rrdtool create "$rrd" \ --step 300 \ \ DS:inbytes:COUNTER:600:U:U \ DS:outbytes:COUNTER:600:U:U \ \ RRA:AVERAGE:0.5:1:600 \ RRA:AVERAGE:0.5:6:700 \ RRA:AVERAGE:0.5:24:775 \ RRA:AVERAGE:0.5:288:797 \ \ RRA:MAX:0.5:1:600 \ RRA:MAX:0.5:6:700 \ RRA:MAX:0.5:24:775 \ RRA:MAX:0.5:288:797 \ \ || exit 1 fi bytes=`netstat -bn -f link -I "$interface" | awk -v "i=$interface" '{if ($1 == i) print $7":"$10}'` rrdtool update "$rrd" "N:$bytes" || exit 1 rrdtool graph "$graph" \ --imgformat PNG \ \ --width 500 \ --height 150 \ \ --start -1d \ --title "Network traffic bit/s" \ \ --base 1000 \ \ --slope-mode \ --interlaced \ --alt-y-grid \ \ --lazy \ \ "DEF:inbytes=$rrd:inbytes:AVERAGE" \ "DEF:outbytes=$rrd:outbytes:AVERAGE" \ \ 'CDEF:inbits=inbytes,8,*' \ 'CDEF:outbits=outbytes,8,*' \ \ 'CDEF:outbits_neg=outbits,-1,*' \ \ 'COMMENT: \n' \ 'COMMENT: Max Avg Last\n' \ 'COMMENT: \n' \ \ 'AREA:inbits#74D2F1:incoming' \ 'GPRINT:inbits:MAX:%8.2lf %s' \ 'GPRINT:inbits:AVERAGE:%8.2lf %s' \ 'GPRINT:inbits:LAST:%8.2lf %sbit/s\n' \ \ 'LINE1:inbits#45709E:' \ \ 'AREA:outbits_neg#6DF8BE:outgoing' \ 'GPRINT:outbits:MAX:%8.2lf %s' \ 'GPRINT:outbits:AVERAGE:%8.2lf %s' \ 'GPRINT:outbits:LAST:%8.2lf %sbit/s\n' \ \ 'LINE1:outbits_neg#4CAC84:' \ \ 'HRULE:0#000000' \ \ "COMMENT: `date '+%Y-%m-%d %H\:%M\:%S'`" \ \ > /dev/null