creating rrd: #!/bin/sh rrdtool create /var/rrdtool/db/ftp.rrd --step 60 \ DS:ftpin:COUNTER:120:U:U \ DS:ftpout:COUNTER:120:U:U \ RRA:AVERAGE:0.5:1:3000 \ RRA:AVERAGE:0.5:5:700 \ RRA:AVERAGE:0.5:20:700 \ RRA:AVERAGE:0.5:24:775 \ RRA:AVERAGE:0.5:288:797 \ RRA:MAX:0.5:1:3000 \ RRA:MAX:0.5:5:700 \ RRA:MAX:0.5:20:700 \ RRA:MAX:0.5:24:775 \ RRA:MAX:0.5:288:797 \ RRA:MIN:0.5:1:600 \ RRA:MIN:0.5:6:700 \ RRA:MIN:0.5:24:775 \ RRA:MIN:0.5:288:797 --------------- filling rrd with data: #!/bin/sh # /var/rrdtool/script/network_usage.sh ftpin=`/sbin/ipfw show 00010 | awk '{print $3}'` ftpout=`/sbin/ipfw show 00011 | awk '{print $3}'` /usr/local/bin/rrdtool update /var/rrdtool/db/ftp.rrd \ N:$ftpin:$ftpout ---------------- drawing: #!/bin/sh #/var/rrdtool/script/network_usage_graph.sh SEC_IN_DAY=86400 /usr/local/bin/rrdtool graph /usr/local/www/rrdtool/ftp.png \ --width 1024 --height 256 --imgformat PNG \ --start -61440 \ --title "FTP from NNN" --rigid --alt-y-grid --color GRID#FF7F50 --color MGRID#FF0000 \ --x-grid HOUR:1:HOUR:6:HOUR:12:0:%a" "%R \ --lower-limit 0 \ --vertical-label "bits per second" \ DEF:ftpin=/var/rrdtool/db/ftp.rrd:ftpin:AVERAGE \ DEF:ftpout=/var/rrdtool/db/ftp.rrd:ftpout:AVERAGE \ CDEF:ftpin1=ftpin,8,* \ CDEF:ftpout1=ftpout,8,* \ COMMENT:"Avg.bits in" \ VDEF:sumftpin=ftpin,TOTAL \ VDEF:maxftpin1=ftpin1,MAXIMUM \ VDEF:minftpin1=ftpin1,MINIMUM \ VDEF:avgftpin1=ftpin1,AVERAGE \ VDEF:lastftpin1=ftpin1,LAST \ GPRINT:lastftpin1:"Last=%.1lf %sb" \ GPRINT:minftpin1:"Min=%.1lf %sb" \ GPRINT:maxftpin1:"Max=%.1lf %sb" \ GPRINT:avgftpin1:"Avg=%.1lf %sb" \ GPRINT:sumftpin:"Sum=%.1lf %sB\l" \ COMMENT:"Avg.bits out" \ VDEF:sumftpout=ftpout,TOTAL \ VDEF:maxftpout1=ftpout1,MAXIMUM \ VDEF:minftpout1=ftpout1,MINIMUM \ VDEF:avgftpout1=ftpout1,AVERAGE \ VDEF:lastftpout1=ftpout1,LAST \ GPRINT:lastftpout1:"Last=%.1lf %sb" \ GPRINT:minftpout1:"Min=%.1lf %sb" \ GPRINT:maxftpout1:"Max=%.1lf %sb" \ GPRINT:avgftpout1:"Avg=%.1lf %sb" \ GPRINT:sumftpout:"Sum=%.1lf %sB\l" \ AREA:ftpin1#00FF00:"IN" \ LINE1:ftpout1#FF0000:"OUT\l" \ COMMENT:"Last update at `date '+%a %b %d %H-%M-%S'`" \ 2>&1 > /dev/null ------------ add to crontab (period 1 minute) #!/bin/sh #/var/rrdtool/script/network_usage_update_rrdtool.sh /var/rrdtool/script/network_usage.sh /var/rrdtool/script/network_usage_graph.sh