.titleBar { margin-bottom: 5px!important; }

mrtg für Arme

Dieses Thema im Forum "FRITZ!Box Fon: Modifikationen" wurde erstellt von meimi039, 19 Sep. 2006.

  1. meimi039

    meimi039 Mitglied

    Registriert seit:
    7 Juni 2005
    Beiträge:
    323
    Zustimmungen:
    0
    Punkte für Erfolge:
    16
    Beruf:
    Senior IT-Security Engineer
    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.
     
  2. bigblock

    bigblock Neuer User

    Registriert seit:
    28 Feb. 2006
    Beiträge:
    22
    Zustimmungen:
    0
    Punkte für Erfolge:
    0
  3. meimi039

    meimi039 Mitglied

    Registriert seit:
    7 Juni 2005
    Beiträge:
    323
    Zustimmungen:
    0
    Punkte für Erfolge:
    16
    Beruf:
    Senior IT-Security Engineer
    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...
     
  4. Psychodad

    Psychodad Mitglied

    Registriert seit:
    31 Mai 2005
    Beiträge:
    277
    Zustimmungen:
    0
    Punkte für Erfolge:
    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