PetsOr Geschrieben 19. Oktober 2009 Geschrieben 19. Oktober 2009 Hey. Ich hoffe ich finde hier Rat und Hilfe, da ich überhaupt nicht weiterkomme bzw. kein Anfang habe . Wir nutzen ein vxfs- Fileystem und ich soll ein Script schreiben,was eine Mail an den Admin sendet, wenn ein Filesystem über 80% belegt ist. Kann mir da jemand helfen? Vielen Dank schonmal für eure Antwort. Gruß Zitieren
lordy Geschrieben 19. Oktober 2009 Geschrieben 19. Oktober 2009 Warum das Rad neu erfinden ? Gehe auf www.nagios.org, lade dir die aktuellen Nagios-Plugins un kompiliere sie. Da ist ein Script namens check_disk dabei, das genau das tut. Ist getesteter und gepflegter Code und funktioniert sicher besser als was handgestricktes. Zitieren
PetsOr Geschrieben 19. Oktober 2009 Autor Geschrieben 19. Oktober 2009 Danke erstmal für die schnellel Antwort ... ist ja unglaublich . Die Seite kannte ich aber schon und hat mir leider nicht geholfen. Habe jetzt mal was geschrieben und ein Teil aus dem Netz zusammengesucht. Kann jemand, der sich da mit auskennt, eben drüber schauen? Es müssten alle Filesysteme erfasst werden, geschieht das überhaupt mti der Abfrage der Partitionen? Script: #!/bin/sh #Der Admin soll eine Mail bekommen, wenn der Speicher überläuft ADMIN="xxx@xx.de" # Benachrichtung ab 90% ALERT=90 df -H | grep -vE '^Filesystem|tmpfs|cdrom' | awk '{ print $5 " " $1 }' | 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 "Der Speicher läuft über \"$partition ($usep%)\" on $(hostname) as on $(date)" | mail -s "ROTE NACHRICHT: Das System kommt an seine Grenzen! $usep" $ADMIN fi done Zitieren
PetsOr Geschrieben 19. Oktober 2009 Autor Geschrieben 19. Oktober 2009 Warum das Rad neu erfinden ? Gehe auf www.nagios.org, lade dir die aktuellen Nagios-Plugins un kompiliere sie. Da ist ein Script namens check_disk dabei, das genau das tut. Ist getesteter und gepflegter Code und funktioniert sicher besser als was handgestricktes. Danke ... ich werde es mir mal anschauen! Zitieren
PetsOr Geschrieben 20. Oktober 2009 Autor Geschrieben 20. Oktober 2009 Erneut allen einen guten Morgen . Habe die variante gewählt, mir doch ein eigenes Script zu schreiben ... trotzdem Danke für den vorherigen Hinweis. Das Script soweit auch fertig, nur laufe ich auf einen Fehler mit dem ich nichts anfangen kann ... benötige Hilfe! Fehlermeldung beim ausführen: [: 15: Illegal number: Ben Das Script: #!/bin/sh #Der Admin soll eine Mail bekommen, wenn der Speicher überläuft ADMIN="xx@xx.de" # Benachrichtung ab 90% ALERT=90 df -H | grep -vE '^/dev/' | awk '{ print $5 " " $1 }' | 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 ist gering auf \"$partition ($usep%)\" von $(hostname) am $(date)" | mailx -s "ROTE NACHRICHT: Das System kommt an seine Grenzen! $usep % voll auf $partition" $ADMIN fi done Vielen Dank schonmal! Zitieren
lupo49 Geschrieben 20. Oktober 2009 Geschrieben 20. Oktober 2009 Sieht so aus, als wenn du versuchst einen String als Zahl zu behandeln. Ich würde mir mal die Variablenwerte anzeigen lassen. Zitieren
AnDi_P Geschrieben 20. Oktober 2009 Geschrieben 20. Oktober 2009 (bearbeitet) usep=$(echo $output | awk '{ print $1}' | cut -d'%' -f1 ) partition=$(echo $output | awk '{ print $2 }' ) if [ $usep -ge $ALERT ]; then echo "Speicherplatz ist gering auf \"$partition ($usep%)\" von $(hostname) am $(date)" | mailx -s "ROTE NACHRICHT: Das System kommt an seine Grenzen! $usep % voll auf $partition" $ADMIN fi done! Die Variable "usep" sieht mir irgendwie komisch definiert aus. usep=$(echo $output | awk '{ print $1}' | cut -d'%' -f1 ) Ich würde erstmal folgendermaßen schreiben, wobei das evtl. auch egal sein sollte: usep=`echo $output | awk '{ print $1}' | cut -d "%" -f1` Des Weiteren ist das, was diese Funktion abfragt, wie lupo schon sagte, sehr wahrscheinlich folgender String: "15: Illegal number: Ben Diesen kann man natürlich dann nicht mit einer Zahl vergleichen. Also am besten mal mit "echo $usep" anzeigen lassen, was du da überhaupt definiert hast, und dann die Variable entsprechend ändern Lg Bearbeitet 20. Oktober 2009 von AnDi_P Zitieren
Empfohlene Beiträge
Dein Kommentar
Du kannst jetzt schreiben und Dich später registrieren. Wenn Du ein Konto hast, melde Dich jetzt an, um unter Deinem Benutzernamen zu schreiben.