Datenbankconnect prüfen (Return-Code)

F

fencingline

Mitglied
Hallo zusammen,

ich möchte folgendes umsetzen:

Code:
mysqlshow -uUser -pPasswort -hlocalhost
if [$ERFOGREICH]
  then
    echo "Alles o.k."
  else
    echo "Fehler!"
fi

Insbesondere möchte ich es merken, wenn ich das Datenbankpasswort ändere, dass die Scripte dann nicht mehr arbeiten und ich das Passwort darin auch ändern muss. ;)
Das habe ich bei der letzten Änderung nicht beachtet und hatte dann lauter 1 KB große Backups. :(

Der Return-Code $? ist in diesem Fall leider immer 0, so dass ich darauf nicht abfragen kann.

Hat sonst jemand brauchbare Ideen?

Vielen Dank bereits im Voraus!

LG

FCL
 
Der Return-Code $? ist in diesem Fall leider immer 0, so dass ich darauf nicht abfragen kann.
ich habs grade mal ausprobiert: hier bekomm ich mit richtigem passwort einen returncode von 0 und mit falschen passwort einen von 1... (eigentlich wie zu erwarten war..)

Code:
if mysqlshow -uroot -pasdf -hlocalhost 1>2 2>/dev/null; then
   echo 'yey'
else
   echo 'nej'
fi
gibt hier 'nej' aus...

ansonsten wäre es vielleicht auch geschickter diese ganzen (es sind mehrere?) backupskripts aus einem meta-skript heraus zu starten, in der dann die variablen $SQLUSER, $SQLPASS und $SQLHOST (jetzt mal so als beispiel) gesetzt werden mit denen dann die "subscripts" arbeiten. naja, kA, auch wenn nicht, irgendwie erscheint es mir absurd diese sachen direkt als klartext ins skript zu schreiben, macht das ganze imho unflexibel. (aber kommt natürlich auch immer auf die genaue situation drauf an)
 
Ich check das noch mal.

Der DBUSER und Das DBPASSWORT wird als Variable mitgegeben, logisch. ;)
.
.
.
EDIT (autom. Beitragszusammenführung) :
.

Code:
if mysqlshow -uroot -pasdf -hlocalhost 1>2 2>/dev/null; then
   echo 'yey'
else
   echo 'nej'
fi
Das funktioniert! Vielen Dank!

Jetzt kann ich an dieser Stelle einen [ERROR] ausgeben. Der Output wird per Mail versendet, der Mailclient überprüft Mails mit dem Absender Server und Inhalt [ERROR]. Wenn das true ist, wird eine SMS an die Server-Admins versendet. ;)

Dann kann künftig auf so ein Versehen sofort reagiert werden.

Danke noch mal! :)
 
Zuletzt bearbeitet:
Danach wurde zwar nicht gefragt, könnte aber vielleicht nützlich sein: Den mysql-Befehl und seine Parameter, also auch '-pMeinPaßwort', kann man mit 'ps' im Klartext anzeigen lassen. Falls es nicht anders geht, sollte also für diesen connect-Test zumindest ein eigener Benutzer ohne besondere Rechte angelegt werden.
 
Oder du machst es gleich richtig und nimmst nagios oder was vergleichbares...
 

Ähnliche Themen

Listen vergleichen

nach ssh-login auswerte ob passwortabfrage komt oder nicht

Shell-Skript nicht doppelt starten

mittels if abfrage datei nach variabelnwert durchsuchen

Escaping-Problem

Zurück
Oben