daspossum
Goto Top

Bash Case für Nagios

Hallo zusammen,

ich möchte mir ein Kleines Plugin für die Auswertung der Festplatten für ältere Linux- Server schreiben. Es funktioniert auch soweit, nur im case scheint es Probleme zu geben er kennt nur Ok oder UNKNOW.
#!/bin/bash


db=`ssh # "/usr/kps/./db_kps"` 
case $db in
        [1-80]*)
        echo "OK - $db Speicherplatz belegt"  
        exit 0
        ;;
        [81-90])
        echo "WARNING - $db Speicherplatz belegt"  
        exit 1
        ;;
        [91-100])
        echo "CRITICAL - $db Speicherplatz voll!!"  
        exit 2
        ;;
        *)
        echo "UNKNOWN - $db nicht messbar"  
        exit 3
        ;;
esac
hab ich vieleicht den falschen Operator verwendet?
Kommentar vom Moderator Dani am 02.11.2015 um 15:14:44 Uhr
Formatierung hinzugefügt.

Content-ID: 287321

Url: https://administrator.de/contentid/287321

Ausgedruckt am: 23.11.2024 um 02:11 Uhr

Dani
Lösung Dani 02.11.2015 aktualisiert um 15:16:47 Uhr
Goto Top
Moin,
möchtest du uns noch ein Beispiel geben, wie der Inhalt von $db aussieht?! Macht die Fehlersuche einfacher...


Gruß,
Dani
DasPossum
DasPossum 02.11.2015 um 15:21:13 Uhr
Goto Top
Zu erst filtere ich mir die Festplatte aus:

db=`df -h | grep db | awk '{print $5}'`  

dann bau ich eine SSh Verbindung auf (dazu habe ich die keys ausgetauscht und einen Nagios benutzer erstellt).
im zweiten Schritt wird die Variable dann ins case übernommen und soll das eigentlich diesen durchlaufen.
1- 80% ist ok
81 -90% ist warnung
91 - 100% wird die Platte als kritisch angesehen damit, man sich diese anschaut.
letzteres soll sein, wenn es keine Verbindung zur Platte mehr gibt.
Chonta
Chonta 02.11.2015 um 15:30:23 Uhr
Goto Top
Hallo,

[1-80]*)

mach mal das * weg bitte.
Hast Du schon mit fester Wertübergabe getestet was das Script zurück gibt?

Gruß

Chonta
DasPossum
DasPossum 02.11.2015 um 15:35:29 Uhr
Goto Top
Ja, der Festplattenwert wird richtig übertragen.

Ausgabe ohne Stern:
./db
UNKNOWN - 89% nicht messbar

Wert ist richtig nur springt er im Menü immer zur letzten Ausgabe.

Ausgabe mit Stern:
OK - 89% Speicherplatz belegt
Dani
Dani 02.11.2015 aktualisiert um 16:04:22 Uhr
Goto Top
Das Problem wird das Prozentzeichen in der Ausgabe sein. Versuch es mal so:
#!/bin/bash

db=`df -h | grep sda1 | awk '{print $5}' | sed -e 's/[%]//g'`  

case $db in
# 1 bis einschließlich 80
        ([1-9]|[1-7][1-9]|80)
        echo "OK - $db% Speicherplatz belegt"  
        exit 0;;

# 81 bis einschließlich 90
        (8[1-9]|90)
        echo "WARNING - $db% Speicherplatz belegt"  
        exit 1
        ;;

# 91 bis einschließlich 100
        (9[1-9]|100)
        echo "CRITICAL - $db Speicherplatz voll!"  
        exit 2
        ;;

# Default
        *)
        echo "UNKNOWN - $db nicht messbar"  
        exit 3
        ;;
esac
Getestet auf Ubuntu 14.04 LTS mit einer Festplatte.


Gruß,
Dani
DasPossum
DasPossum 02.11.2015 um 15:53:09 Uhr
Goto Top
danke erst mal für die schnelle Hilfe.
Das Problem mit sed ist das die Ausgabe dann leer ist:
$ ./db
UNKNOWN - nicht messbar
Dani
Dani 02.11.2015 aktualisiert um 15:56:06 Uhr
Goto Top
Hast du "sda1" entsprechend in Zeile 3 angepasst?


Gruß,
Dani
DasPossum
DasPossum 02.11.2015 um 15:57:21 Uhr
Goto Top
Sorry vergessen, funktioniert superface-smile dankeface-smile