Frage von marrypopkins, 21

Linux dump bei Fehler abbrechen?

Hallo,

ich mache per "mysqldump" ein Datenbank Backup. Hierbei prüfe ich zudem über den stderr Stream ob ein Fehler passiert ist (zB wenn der MySQL Server down ist) und schreibe den Error in ein 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 er hier überhaupt keine Datei erstellen sondern nur den Fehler in die tmp Datei schreiben.

Weiß jemand wie man nach dem stderr Stream alles hinter dem pipe abbricht so das keine gz Datei geschrieben wird?

Hier die Commandos: http://pastebin.com/zP48ahRm

Antwort
von KuarThePirat, 14

Meine erste Idee wäre das ganze zu koppeln mit &&. Ich weiß gerade nicht sicher, ob diese Umleitung wie angegeben ist funktioniert. Falls ja, dann packt er mysqldump in dump.sql und nur wenn mysqldump erfolgreich ist, wird auch gepackt.

mysqldump -h "localhost" -u "root" --password="" "mydatabase"  2> "/path/errDE35.tmp" 1> dump.sql && gzip -9 dump.sql
Antwort
von Linuxhase, 8

Hallo

Es klappt auch soweit alles, solange kein Fehler passiert.

Genau dafür gibt es doch die "oder-Verknüpfung" bei der ein Folgekommando nur ausgeführt wird wenn das vorherige keine Fehler gemeldet hat.

Kommando A && Kommando B

Linuxhase

Kommentar von Linuxhase ,

Es ist natürlich eine "und-Verknüpfung", tschuldige.

Keine passende Antwort gefunden?

Fragen Sie die Community