Zum Inhalt springen
View in the app

A better way to browse. Learn more.

Fachinformatiker.de

A full-screen app on your home screen with push notifications, badges and more.

To install this app on iOS and iPadOS
  1. Tap the Share icon in Safari
  2. Scroll the menu and tap Add to Home Screen.
  3. Tap Add in the top-right corner.
To install this app on Android
  1. Tap the 3-dot menu (⋮) in the top-right corner of the browser.
  2. Tap Add to Home screen or Install app.
  3. Confirm by tapping Install.

Diensteüberprüfung

Empfohlene Antworten

Veröffentlicht

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:

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


> /dev/null 2>&1

und teste erneut.

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...

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...


/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?

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

Archiv

Dieses Thema wurde archiviert und kann nicht mehr beantwortet werden.

Configure browser push notifications

Chrome (Android)
  1. Tap the lock icon next to the address bar.
  2. Tap Permissions → Notifications.
  3. Adjust your preference.
Chrome (Desktop)
  1. Click the padlock icon in the address bar.
  2. Select Site settings.
  3. Find Notifications and adjust your preference.