Shell Script zur überwachung von Server HDD überlauf

Dieses Thema im Forum "Shell-Skripte" wurde erstellt von mele, 05.03.2009.

  1. mele

    mele Grünschnabel

    Dabei seit:
    05.12.2007
    Beiträge:
    7
    Zustimmungen:
    0
    Hallo zusammen,

    ich soll für einen Server ein Shell Script schreiben, welches bei einer bestimmten belegung der HDD eine e-Mail an den Admin schreibt. Hab mir schon ein kleines Tut bezüglich der Shell Programmierung durchgelesen, weiß aber nich so recht, wie ich anfangen soll.
    Kann mir da jemand helfen?

    mfg

    mele
     
  2. Anzeige

    Schau dir mal diese Kategorie an. Dort findest du bestimmt etwas.
    Registrieren bzw. einloggen, um diese und auch andere Anzeigen zu deaktivieren
  3. #2 bytepool, 05.03.2009
    bytepool

    bytepool Code Monkey

    Dabei seit:
    12.07.2003
    Beiträge:
    791
    Zustimmungen:
    0
    Ort:
    /home/sweden/göteborg
    Moin,

    z.B. ein moeglicher Ansatz:

    mit df, grep und cut die Belegung auslesen, testen ob die Belegung > x ist, und wenn ja die mail schreiben (vermutlich mit mail, habe ich selbst nie genutzt).

    mfg,
    bytepool
     
  4. mele

    mele Grünschnabel

    Dabei seit:
    05.12.2007
    Beiträge:
    7
    Zustimmungen:
    0
    danke, werds jetzt mal versuchen! :-)
     
  5. #4 sim4000, 05.03.2009
    Zuletzt bearbeitet: 05.03.2009
    sim4000

    sim4000 Lebende Foren Legende

    Dabei seit:
    12.04.2006
    Beiträge:
    1.933
    Zustimmungen:
    0
    Ort:
    In meinem Zimmer
    Hab da mal was gebaut. :)
    Code:
    #!/bin/bash
    
    MAX=90
    DEVICE=/dev/sda7
    VALUE=$(df -h | grep $DEVICE | cut -d "%" -f1 | cut -c$(echo $(($(df -h | grep $DEVICE | cut -d "%" -f1 | wc -c)-2)))-)
    
    if [ "$VALUE" != "00" ]; then
    
       if [ $VALUE -gt $MAX ]; then
          echo "waaaah Alarm";
       else
          echo "Alles tutti....";
       fi
    
    else
       echo "Platte voll"
    fi
    Zwar nicht sooo sauber, aber läuft. ;)
    Das Script nimmt den Prozentwert zum Prüfen, und entscheidet dann was ausgegeben wird. Da müsste man nur noch den Email Versand noch einbauen.
     
  6. mele

    mele Grünschnabel

    Dabei seit:
    05.12.2007
    Beiträge:
    7
    Zustimmungen:
    0
    vielen dank!! supi!! werds jetzt mal mit der mail noch versuchen!!! danke, danke!!:))
     
  7. T-One

    T-One Routinier

    Dabei seit:
    14.10.2008
    Beiträge:
    478
    Zustimmungen:
    3
    Ort:
    Österreich
    Du hast ja zwar schon eine Lösung, bekommst aber meine auch noch :)

    Code:
    #####################CODE######################
    #!/bin/sh
    # ShellScript zum überprüfen des freien HDD-Platzes
    # Sendet ein E-Mail an $ADMIN, wenn verbrauchter HDD-Speicher 90 % erreicht
    # -------------------------------------------------------------------------
    # admin-mail einstellung um mails zu erhalten
    ADMIN="deinemailaddy@example.com"
    # set alert-level 90 % standard
    ALERT=10
    df -H | grep -vE '^Filesystem|tmpfs|cdrom' | awk '{ print $5 " " $6 }' | while read output;
    do
      #echo $output
      usep=$(echo $output | awk '{ print $1}' | cut -d'%' -f1  )
      partition=$(echo $output | awk '{ print $2 }' )
      if [ $usep -ge $ALERT ]; then
        echo "Speicherplatz zu gering auf \"$partition ($usep%)\", von $(hostname) am $(date)" |
         mail -s "Alert: Speicherplatz zu gering, $usep % voll auf $partition" $ADMIN
      fi
    done
    #####################CODE ENDE#################
    
    Speichern als discmon.sh
    Code:
    #chmod +x discmon.sh
    
    ausführen

    per crontab für zeitlich gesteuerten check speichern.

    Falls bei einem Testlauf die Fehlermeldung
    Code:
    ./discmon.sh: line 14: [: Ben: integer expression expected
    
    erscheint , ist die Formatierung von df -H auf mehrere Zeilen aufgeteilt, was somit das auslesen der Spalten nutzlos macht.
    Um dies zu umgehen die Zeile

    Code:
    df -H | grep -vE '^Filesystem|tmpfs|cdrom' | awk '{ print $5 " " $6 }' | while read output;
    
    mit
    Code:
    df -HP | grep -vE '^Filesystem|tmpfs|cdrom' | awk '{ print $5 " " $6 }' | while read output;
    
    austauschen.

    Für ein besseres Debugging kann auch die Zeile
    Code:
    #echo $output
    
    auskommentiert werden.

    mfg

    T-One
     
  8. foexle

    foexle Kaiser

    Dabei seit:
    02.05.2007
    Beiträge:
    1.104
    Zustimmungen:
    0
    Ort:
    Saarbrücken
    also für solche aufgaben .... überwachen von systemspezifischen dingen wie hdd, mem, cpu etc. oder daemons etc. benutze ich immer monit.
    Wenn man mal mit gearbeitet hat, ist es ein kinderspiel das ein zu richten. Du solltest dir das mal anschaun ... vorallem sehr effektiv bei mehreren servern.
     
  9. Anzeige

    Vielleicht findest du HIER Antworten.
    Registrieren bzw. einloggen, um diese und auch andere Anzeigen zu deaktivieren
  10. #8 supersucker, 05.03.2009
    supersucker

    supersucker Foren Gott

    Dabei seit:
    21.02.2005
    Beiträge:
    3.873
    Zustimmungen:
    0
    Oder man nimmt für etwas sehr einfaches eben was sehr einfaches wie logwatch.

    Oder man erfindet halt zum x-ten Mal das gleiche triviale script.
     
  11. #9 bitmuncher, 05.03.2009
    bitmuncher

    bitmuncher Der Stillgelegte

    Dabei seit:
    08.05.2007
    Beiträge:
    3.171
    Zustimmungen:
    0
    Er _soll_ das Skript schreiben, daher dürfte die Vermutung nahe liegen, dass dies im Rahmen einer Ausbildung passiert und da kann man nunmal nicht einfach sagen: "Dafür gibt's doch Monit."
     
Thema:

Shell Script zur überwachung von Server HDD überlauf

Die Seite wird geladen...

Shell Script zur überwachung von Server HDD überlauf - Ähnliche Themen

  1. Shell Script Problem

    Shell Script Problem: Hallo zusammen, ich arbeite momentan mit einem Plagiat Tool, die ich über Git Bash ausführe. Es wird im Endeffekt ein Link generiert, die ich...
  2. Shellscript für rotierende Datensicherung

    Shellscript für rotierende Datensicherung: Hallo, ich beschäftige mich erst seit ein paar Wochen mit der Shell und habe mich entschlossen meine ersten Scripterfahrungen in diesem kleinen...
  3. Shellscript unerwartetes Dateiende

    Shellscript unerwartetes Dateiende: Hallo zusammen, folgendes Script führe ich in einer .bat via cygwin und curl aus. Beim Ausführen erhalte ich die einen Syntaxfehler:...
  4. shell-script mit plink starten

    shell-script mit plink starten: Hallo, auf meinem kleinen QNAP-Backupserver möchte ich von meinem Windows 7 PC mittels Windows-Batch ein kleines shell script starten. So sieht...
  5. Einfaches Shellscript - dateinamen ändern

    Einfaches Shellscript - dateinamen ändern: Hey, kann mir jemand vielleicht bei diesem miniscript helfen? ich habe dateien die folgendermaßen aussehen MM-DD-YY-dateiname und...