Gibt mysqldump einen Status zurück?


14

Ich erstelle ein Skript, das eine MySQL-Datenbank mit dem Dienstprogramm mysqldump sichert. Ich schreibe dieses Skript in der Shell "sh". Ich möchte den Ausgabestatus von mysqldump im Skript erfassen (dh, wenn der Befehl mysqldump fehlgeschlagen ist oder erfolgreich war), damit ich melden kann, ob das Skript erfolgreich war oder nicht.

  • Gibt mysqldump einen Ausgabestatus zurück?

  • Kann mir bitte jemand eine Anleitung geben, wie das geht?


Sie können einfach überprüfen, ob die Datei erstellt wurde und die letzte Zeile Folgendes enthält: -- Dump completed on ...- Wenn ein Problem aufgetreten ist, ist dies nicht der Fall.
Ewan Heming

Ich erstelle Speicherauszug durch Shell-Skript, also möchte ich die Idee erhalten, dass Speicherauszug richtig hergestellt wird oder nicht durch irgendeinen Status.
Krunal Shah

Antworten:


14

mysqldump kehrt zurück

0 for Success
1 for Warning
2 for Not Found

Es wird auch eine erweiterte Fehlermeldung an stderr ausgegeben, z

mysqldump: Got error: 1049: Unknown database 'dbname' when selecting the database

Sie können den zurückgegebenen Wert wie folgt überprüfen

mysqldump -u DBuser -pDBpassword database >database.sql 2>database.err 
if [ "$?" -eq 0 ]
then
    echo "Success"
else
    echo "Mysqldump encountered a problem look in database.err for information"
fi

Ich kann die Fehlermeldung "Erfolgreich fehlgeschlagen" nicht an meine E-Mail-Adresse zurücksenden. Bitte helfen Sie Sir ...
Sqlchild

1

Nach dem Dump Check $ beendet? Shell-Variable. Wenn es 0 ist, ist alles gut gegangen. Sonst - Fehler.

# mysqldump -u aaa -d msf>/dev/null
mysqldump: Got error: 1045: Access denied for user 'aaa'@'localhost' (using password: YES) when trying to connect
# echo $?
2
Durch die Nutzung unserer Website bestätigen Sie, dass Sie unsere Cookie-Richtlinie und Datenschutzrichtlinie gelesen und verstanden haben.
Licensed under cc by-sa 3.0 with attribution required.