mrtg für Arme

meimi039

Mitglied
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:

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.
 

bigblock

Neuer User
Mitglied seit
28 Feb 2006
Beiträge
22
Punkte für Reaktionen
0
Punkte
0

meimi039

Mitglied
Mitglied seit
7 Jun 2005
Beiträge
323
Punkte für Reaktionen
0
Punkte
16
Fast richtig!
Ich will aber nicht die Box monitoren, sondern mit der Box andere Maschinen monitoren, da ich nicht 150Watt brennen lassen will, nur im Informationen zu sammeln, die ich nur bei Problemen mal brauche...
Die optische Aufbereitung ist natürlich nur ein Bonus, denn ich könnte ja einfach in eine Textdatei sammeln...
 

Psychodad

Mitglied
Mitglied seit
31 Mai 2005
Beiträge
277
Punkte für Reaktionen
0
Punkte
0
hübscher...

Hi

Etwas schöner machen ist kein grosses Problem: Du erstellst statt er "Sternchen" und "Striche" kleine gif-Grafiken und gibts dann im Script statt der Zeichen die entsprechenden HTML-Tags aus.
(oder für ganz Faule: schript so lassen und am schluss die Zeichen durch Tags ersetzten - sed ist dein Freund ;-) )

Die Grafiken würden von der Grösse sicher auf die FB passen, Du kannst sie natürlich auch auf einem beliebigen WebServer speichern und verlinken.

Gruss

Psychodad
 

3CX PBX - GRATIS
Linux / Win / Cloud

Statistik des Forums

Themen
232,348
Beiträge
2,021,412
Mitglieder
349,904
Neuestes Mitglied
Tomi07