RRDTool
Zur Navigation springen
Zur Suche springen
#!/bin/bash RRDDIR="/var/www/rrd" ARCHIVES="$RRDDIR/archives" #GRAPHS="/var/www/rrd/graphs" STEP="5" HEARTBEAT="120" MIN="0" MAX="13107200" [ ! -d $ARCHIVES ] && mkdir -p $ARCHIVES chown root:www-data $RRDDIR chmod g+w $RRDDIR echo "$STEP" > $RRDDIR/step #STIME=`expr $(date +%s) + 7200` STIME=`date +%s | tee ${RRDDIR}/starttime` rm $ARCHIVES/* rrdtool create $ARCHIVES/traffic_Rx.rrd \ --start $STIME \ --step $STEP \ DS:Rx:COUNTER:$HEARTBEAT:$MIN:$MAX \ RRA:AVERAGE:0.5:1:1440 rrdtool create $ARCHIVES/traffic_Tx.rrd \ --start $STIME \ --step $STEP \ DS:Tx:COUNTER:$HEARTBEAT:$MIN:$MAX \ RRA:AVERAGE:0.5:1:1440 sleep 5 while true do [ ! -d $GRAPHS ] && mkdir -p $GRAPHS #TIME=`expr $(date +%s) + 7200` TIME=`date +%s | tee ${RRDDIR}/curtime` RX=`awk -F: '/eth0/ { print $2 }' /proc/net/dev | awk '{ print $1 }'` TX=`awk -F: '/eth0/ { print $2 }' /proc/net/dev | awk '{ print $9 }'` rrdtool update $ARCHIVES/traffic_Rx.rrd $TIME:$RX rrdtool update $ARCHIVES/traffic_Tx.rrd $TIME:$TX sleep $STEP done
#!/usr/bin/perl -w use strict; use RRDs; use CGI qw(:standard); use CGI::Carp qw(fatalsToBrowser warningsToBrowser); my $rrddir="rrd"; my $archives="$rrddir/archives"; my $stimefile="$rrddir/starttime"; my $curtimefile="$rrddir/curtime"; my $stepfile="$rrddir/step"; my $imagefile="$rrddir/traffic.png"; my $stime; my $curtime; my $step; if ( -e $stimefile) { open FILE, '<', $stimefile or die "Kann Datei $stimefile nicht zum Lesen oeffnen: $!"; $stime = <FILE>; close FILE; } if ( -e $curtimefile) { open FILE, '<', $curtimefile or die "Kann Datei $curtimefile nicht zum Lesen oeffnen: $!"; $curtime = <FILE>; close FILE; } if ( -e $stepfile) { open FILE, '<', $stepfile or die "Kann Datei $stepfile nicht zum Lesen oeffnen: $!"; $step = <FILE>; close FILE; } RRDs::graph ("$imagefile", "--title=Traffic on eth0", "--vertical-label=Bytes/s", "--start=$stime", "--end=$curtime", "--height=250", "--lower-limit=0", "DEF:Rx=$archives/traffic_Rx.rrd:Rx:AVERAGE", "DEF:Tx=$archives/traffic_Tx.rrd:Tx:AVERAGE", "LINE2:Rx#FF0000:Rx", "LINE3:Tx#0000FF:Tx"); my $err=RRDs::error; if ($err) {print "problem generating the graph: $err\n";} print "Content-Type: text/html\n\n". "<html>\n". "<head><title>Traffic</title></head>\n". "<body>\n". "<img src=$imagefile>\n". "</body>\n". "</html>\n";