MySQL Dump bei stderr nicht komprimieren

Status
Für weitere Antworten geschlossen.

aptget

Benutzer
Mitglied seit
08. Jan 2016
Beiträge
6
Punkte für Reaktionen
0
Punkte
1
Hallo Fans der Kommandozeile,

ich führe mit Hilfe von "mysqldump" relgelmäßig ein Datenbank Backup durch. Hierbei prüfe ich zudem über den stderr Stream ob ein Fehler passiert ist (zB wenn der MySQL Server down ist) und schreibe die Error Message in eine tmp Datei.

Nun will ich zusätzlich, bei einem erfolgreich ausgeführten dump, die Backupdatei mit gzip komprimieren. Es klappt auch soweit alles, solange kein Fehler passiert. Wenn ich den MySQL Server abschalte und den Dump ausführe schreibt der mit eine leere gz Datei. Eigentlich soll hier überhaupt keine gz Datei erstellt werden sondern nur der Fehler in die tmp Datei geschrieben werden.

Weiß jemand wie man nach dem stderr Stream (also bei einem Fehler) alles ab dem pipe abbricht so das keine gz Datei geschrieben wird?

Rich (BBCode):
mysqldump -h "localhost" -u "root" --password="" "mydatabase"  2> "/path/errDE35.tmp" | gzip -9 > "/path/dump-db.sql.gz"
 

AndiHeitzer

Benutzer
Sehr erfahren
Mitglied seit
30. Jun 2015
Beiträge
3.355
Punkte für Reaktionen
653
Punkte
174
Moing

Rein Logisch passiert folgendes:
- Du stösst den Dump an => Zieldatei wird dabei angelegt
- Du wartest auf Fehlermeldungen => wird ins ERR-LOG geschrieben.

Ich will damit sagen, dass Du so das Erstellen des DUMP-Files nicht abfangen kannst.

Hier solltest Du Dir überlegen, ob Du vorher einen DB-Login durchführst und auf Erfolg/Misserfolg prüfst und anschliessend mit dem Dump weitermachst oder nicht.

Zuerst solltest du prüfen, ob der MySQL-Deamon/Service läuft.
Anschliessend noch einen Prüf-Login machen.

Wenn das fehlerfrei läuft, dann erst den DUMP ziehen.
 
Status
Für weitere Antworten geschlossen.
 

Kaffeautomat

Wenn du das Forum hilfreich findest oder uns unterstützen möchtest, dann gib uns doch einfach einen Kaffee aus.

Als Dankeschön schalten wir deinen Account werbefrei.

:coffee:

Hier gehts zum Kaffeeautomat