Zum Inhalt springen

Diensteüberprüfung


Empfohlene Beiträge

Hallo zusammen,

habe folgendes Problem:

Apache + mysql-cluster... 2 nodes sind mit einem Management-Server verbunden

So...ich habe nun ein Script geschrieben das mir eine Mail schicken und einen Dienst neustarten soll, wenn die nodes nicht mehr mit dem Management-Server verbunden sind.

Hier das Script:

#!/bin/sh

MAILTEXT='/tmp/ndbd.txt'

SERVICE='ndbd'


if ((/usr/local/bin/ndb_mgm -e show | sed -ne '5p' | grep "not connected" > /dev/null)

        || /usr/local/bin/ndb_mgm -e show | sed -ne '6p' | grep "not connected" > /dev/null ); then


        if ssh (user@ip) "ps ax | grep -v grep | grep $SERVICE > /dev/null" ; then

                        echo "hostname1: looks fine $SERVICE service running"

                else

                        echo "WARNING: $SERVICE service is not running on hostname1. Restarting Node now" > $MAILTEXT

                        ssh user@ip 'sudo /etc/init.d/mysql-ndb restart' >> $MAILTEXT

        fi


        if ssh user@ip "ps ax | grep -v grep | grep $SERVICE > /dev/null" ; then

                        echo "hostname2: looks fine $SERVICE service running"

                else

                        echo "WARNING: $SERVICE service is not running on hostname2. Restarting Node now" >> $MAILTEXT

                        ssh user@ip 'sudo /etc/init.d/mysql-ndb restart' >> $MAILTEXT

        fi


        mail -s Warning:\ hostname meinemail@bla.com < $MAILTEXT



else

        echo "node is running, everything is fine"


fi

Das script wird alle 5 min durch einen Crontab durchgeführt... jetzt bekomm ich allerdings alle 5 min folgendes per mail gesagt:

hostname1: looks fine ndbd service running

hostname2: looks fine ndbd service running

Hoffe mir kann jemand helfen... wahrscheinlich isses ne klammer oder so, ich kenn mich ja :floet:

Link zu diesem Kommentar
Auf anderen Seiten teilen

Das ist wahrscheinlich die Konsolenausgabe vom Skript, die der crond nimmt und an root sendet. Pack hinter den Befehl im Crontab-Eintrag ein

Code:

> /dev/null 2>&1

und teste erneut.

Hi, danke erstmal für die schnelle Antwort. Hat aber leider nicht das gewünschte ergebnis gebracht...

Ich glaub ja eher, dass etwas mit der logik nicht stimmt... denn er soll ja erst wenn die beiden nodes "not connected" sind in die schleife gehen... ansonsten gleich rausspringen und KEINE Mail senden...

Link zu diesem Kommentar
Auf anderen Seiten teilen

doh! :upps

is klar, dass er in die if schleife geht, wenn er garkeinen vergleich hat, mit der er das dort vergleichen soll... :S ich sag ja, ich kenn mich und meine Fehler...

Also nun die Frage: Gegen was könnte ich es vergleichen?

Wenn ich

/usr/local/bin/ndb_mgm -e show | sed -ne '5p' | grep "not connected"

alleine ausführe, kommt nix zurück... wenn dort not connected stehen würde, würde das ja dann ausgegeben werden...

Link zu diesem Kommentar
Auf anderen Seiten teilen


/usr/local/bin/ndb_mgm -e show | sed -ne '5p' | grep "not connected" 

Wenn der Dienst gestoppt ist, dann findet grep die Zeichenkette. Wenn der Dienst gestartet ist, dann kommt keine Ausgabe?

Schreib das Ergebnis in eine Variable und nutze dann die Variable in der IF-Abfrage?

Link zu diesem Kommentar
Auf anderen Seiten teilen

if  (/usr/local/bin/ndb_mgm -e show | sed -ne '5p' | grep "not connected" ) || (/usr/local/bin/ndb_mgm -e show | sed -ne '6p' | grep "not connected" ) ; then

da war der Fehler...

da war ein Umbruch drinne und die Klammern waren ein wenig falsch gesetzt... :) :upps

Aber danke Trotzdem, für deine Hilfe!

VG

Link zu diesem Kommentar
Auf anderen Seiten teilen

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.

Gast
Auf dieses Thema antworten...

×   Du hast formatierten Text eingefügt.   Formatierung wiederherstellen

  Nur 75 Emojis sind erlaubt.

×   Dein Link wurde automatisch eingebettet.   Einbetten rückgängig machen und als Link darstellen

×   Dein vorheriger Inhalt wurde wiederhergestellt.   Editor leeren

×   Du kannst Bilder nicht direkt einfügen. Lade Bilder hoch oder lade sie von einer URL.

Fachinformatiker.de, 2024 by SE Internet Services

fidelogo_small.png

Schicke uns eine Nachricht!

Fachinformatiker.de ist die größte IT-Community
rund um Ausbildung, Job, Weiterbildung für IT-Fachkräfte.

Fachinformatiker.de App

Download on the App Store
Get it on Google Play

Kontakt

Hier werben?
Oder sende eine E-Mail an

Social media u. feeds

Jobboard für Fachinformatiker und IT-Fachkräfte

×
×
  • Neu erstellen...