- Mitglied seit
- 7 Jun 2005
- Beiträge
- 323
- Punkte für Reaktionen
- 0
- Punkte
- 16
Hallo Leute!
Ich bin auf der Suche nach sowas wie mrtg für die FBF. Aus Ressourcengründen ist mrtg wohl etwas oversized. Vor einiger Zeit habe ich mal einen Output von aMule gesehen (download ratio). Da wird irgendetwas mit html gezaubert.
Hat da jemand spontan eine Idee?
Bisher helfe ich mir mit einem kleinen Script, welches einen Output wie diesen liefert:
Das Script erzeugt ein leeres Diagramm. Bei weiteren Aufrufen sucht es nach dem Graphen im Text und schiebt ihn eine Position weiter nach links und hängt den nächsten Balken dran.
Is wie gesagt für Arme. Wäre aber kuhl, wenn jemand ne Idee hat, wie man das optisch besser Aufbereiten kann.
Ich bin auf der Suche nach sowas wie mrtg für die FBF. Aus Ressourcengründen ist mrtg wohl etwas oversized. Vor einiger Zeit habe ich mal einen Output von aMule gesehen (download ratio). Da wird irgendetwas mit html gezaubert.
Hat da jemand spontan eine Idee?
Bisher helfe ich mir mit einem kleinen Script, welches einen Output wie diesen liefert:
Code:
[SIZE="1"]+---- Max. 4000 k Free Memory on mm-slug ------------- Intervall: 12 min.
v
#***.......***...............*.........***..............................................................................
#***.......***.....*.........*.........***..............................................................................
#***.......***.....*........**.........***..............................................................................
#***.......***.....*......*.**.........***..............................................................................
#***.......***.....**.....*.**.........***..............................................................................
#***.......***.....**.....*.**.........***..............................................................................
#***.......***.....**.....****.........***.......................................................................*****..
#***.......***.....**.....****.........***.......................................................................*****..
#***.......***.....**.....****.........***.......................................................................*****..
#***.......***.....**.....****.........***.......................................................................*****..
#***.......***.....**.....****.........***.......................................................................*****..
#***.......***.....**..*..****.........***.......................................................................*****..
#***.......***.....**..*..****.........***.......................................................................*****..
#***.......***.....**..**.****.........***.......................................................................*****..
#***.......***..*.***.********.........***.......................................................................*****..
#***.*...*.***..*****.********.........***.......................................................................*****..
#***.*...*.*******************.........***.......................................................................*****..
#***.***.*********************.........***.......................................................................*****..
#***.***.*********************.........***..............................................................*..**....*****..
#***.***.**********************........****........**............................*.*.............*.**...*..**....*****..
#***.***.**********************........****........**..................*.........*.*...*.........*.**...*..**....*****..
#***.***.**********************.....*..****.....*..**.....*............*........**.*...*........**.**...*..**....*****..
#***.***.**********************.....*..****.....*..**.....*........*...*......*.**.*...*......*.**.**...*****....*****..
#***.***.**********************.....*..****.....*..**.....*......*.*...**.....*.**.*...**.....*.**.**...*****....*****..
#***.***.**********************.....**.****.....**.**.....**.....*.*...**.....*.**.*...**.....*.**.**...*****....*****..
#***.***.**********************.....**.****.....**.**.....**.....*.*...**.....****.*...**.....****.**...*****....*****..
#***.***.**********************.....**.****.....**.**.....**.....***...**.....****.*...**.....****.**...*****....*****..
#***.***.**********************.....**.****.....**.**.....**.....***...**.....****.*...**.....****.**...*****....*****..
#***.***.**********************.....**.****.....**.**.....**.....***...**.....****.*...**.....****.**...*****....*****..
#***.***.**********************.....**.****.....**.**.....**.....***...**.....****.*...**.....****.**...*****....*****..
#***.***.**********************.....**.****.....**.**.....**.....***...**..*..****.*...**..*..****.**...*****....*****..
#***.***.**********************.....**.****.....**.**.....**..*..***...**..*..****.*...**..*..****.*******************..
#***.***.**********************.....**.****.....**.**.....**..*..***...**..**.****.*...**..**.****.*******************..
#***.***.**********************.....**.****.....**.**.....**..**.****.***.********.**.***.********.*********************
#***.***.**********************..*.***.****..*.***.**..*.***.************.********.******.********.*********************
#********************************..**********..********..*****.*********************************************************
#***********************************************************************************************************************
#***********************************************************************************************************************
#***********************************************************************************************************************
#***********************************************************************************************************************
#***********************************************************************************************************************
#***********************************************************************************************************************
#***********************************************************************************************************************
#***********************************************************************************************************************
#***********************************************************************************************************************
#########################################################################################################################>
Aktueller Wert: 4000 (Sun Sep 17 06:00:16 UTC 2006)[/SIZE]
Code:
#!/bin/sh
#################################################################################
### ####
### Titel : grapher <Current> <Max> <Filename> <Graph-Titel> ####
### ####
### Version : 0.99 ####
### ####
### Date : 15.09.2006 08:15 ####
### ####
### Description : ####
### ####
### ####
### ####
#################################################################################
CURRENT=$1
MAXIMUM=$2
FILENAME=$3
TITEL=$4
TEMPFILE=/tmp/`basename $FILENAME`
DEFHEIGHT=45
# Intervall der Messungen in Minuten (*/$SAMPLINGTIME in erster Zeile von crontab)
SAMPLINGTIME=12
# Einen Tag im Diagramm festhalten
DEFWIDTH=`expr 1440 / $SAMPLINGTIME`
[ $CURRENT -ge $MAXIMUM ] && CURRENT=$MAXIMUM
AXIS='#'
BLANK='.'
MARKER='*'
# Wenn noch kein Graph da, dann leeren erzeugen
if [ ! -e $FILENAME ]
then
# Erste Zeile erzeugen
ZEILE=${AXIS}
J=1
while [ $J -le $DEFWIDTH ]
do
ZEILE=${ZEILE}${BLANK}
J=`expr $J + 1`
done
# TITELLINES eintragen --------------------------Input here
echo "+---- Max. ${MAXIMUM} ${TITEL} ---- Intervall: $SAMPLINGTIME min." > $FILENAME
echo "v" >> $FILENAME
# Erste Zeile $DEFHEIGHT mal ausgeben
I=1
while [ $I -le $DEFHEIGHT ]
do
echo $ZEILE >> $FILENAME
I=`expr $I + 1`
done
# Jetzt X-Achse drunter
ZEILE=${AXIS}
J=1
while [ $J -le $DEFWIDTH ]
do
ZEILE=${ZEILE}${AXIS}
J=`expr $J + 1`
done
echo ${ZEILE}'>' >> $FILENAME
echo "Aktueller Wert: $CURRENT ("`date`')' >> $FILENAME
fi
#################################################################################
# Wenn die Datei existiert
#################################################################################
rm $TEMPFILE > /dev/null 2>&1
touch $TEMPFILE
# Tabellenhoehe erkennen
DEFHEIGHT=`grep "^$AXIS" $FILENAME | wc -l`
# Ausrechnen, wo die Marke hin soll
MARKLINENR=`expr $DEFHEIGHT \* $CURRENT`
MARKLINENR=`expr $MARKLINENR / $MAXIMUM`
MARKLINENR=`expr $DEFHEIGHT - $MARKLINENR`
I=1
cat $FILENAME |
while
read ZEILE;
do
if [ `echo ${ZEILE} | grep "${AXIS}" | grep -v "${AXIS}${AXIS}${AXIS}${AXIS}"` ]
then
# Wenns der Graph ist: Verschieben und Markieren
if [ $I -ge $MARKLINENR ]
then
echo ${ZEILE} | sed -e "s/#.\(.*.$\)/$AXIS\1${MARKER}/" >> $TEMPFILE
else
echo ${ZEILE} | sed -e "s/#.\(.*.$\)/$AXIS\1${BLANK}/" >> $TEMPFILE
fi
I=`expr $I + 1`
else
# Wenn es eine Textzeile ist: einfach ausgeben nur die Zeit aktualisieren
if [ "`echo ${ZEILE} | grep UTC`" ]
then
echo "Aktueller Wert: $CURRENT ("`date`')' >> $TEMPFILE
else
echo ${ZEILE} >> $TEMPFILE
fi
fi
done
mv $TEMPFILE $FILENAME
Das Script erzeugt ein leeres Diagramm. Bei weiteren Aufrufen sucht es nach dem Graphen im Text und schiebt ihn eine Position weiter nach links und hängt den nächsten Balken dran.
Is wie gesagt für Arme. Wäre aber kuhl, wenn jemand ne Idee hat, wie man das optisch besser Aufbereiten kann.