Shellskript für MySQL-DB Sicherung auf OS X

Dienstag, 12 Dezember 2006
0.0/5 Bewertung (0 Stimmen)
Beschreibung

Ich suchte nach einer einfachen Möglichkeit von meiner MySQL Datenbank ein Backup zu erstellen. Nach diversen Versuchen mit Free- und Shareware-Programmen, die bei mir nicht so recht laufen wollten, habe ich eine Lösung gefunden, dies mit einem Shellskript und dem Terminalbefehl mysqldump machen zu können.
So gehts:
Erstellen Sie eine leere Textdatei (z.B. mit TextEdit), kopieren Sie den unten stehenden Code und fügen Sie ihn in die Textdatei ein.
Sie müssen den Pfad für den Zielordner des Backups anpassen. In meinem Beispiel ist es ein Unterordner ”0000” auf einer FireWire Platte. (/Volumes/Backup/mysqlbackup/2dienstag/0000/)
Ersetzen Sie auch BENUTZERNAME und PASSWORT DATENBANK mit Ihren MySQL-Daten. DBBACKUP.sql können Sie umbenennen, wie Sie wollen, jedoch ohne Sonderzeichen oder Leerschläge zu verwenden. Beachten Sie, dass die Endung .sql erhalten bleibt.
Sind alle Einstellungen gemacht, können Sie die Datei sichern. Geben Sie dazu einen Namen und die Endung .sh an. (z.B. mysqldump.sh)
Dieses Skript kann dann via Cron automatisiert werden. (Um die Cronjobs zu erstellen, benutze ich [url=http://www.abstracture.de/projects-en/cronnix]cronnix[/url]).
Sie können das Skript via Terminalaufruf testen:
~ sh /pfad/zum/erstellten/mysqldump.sh

#!/bin/sh
# echo Start Nachricht
echo ”Backup Skript startet”
# zum Backup Zielordner wechseln
if
cd /Volumes/Backup/mysqlbackup/2dienstag/0000/
then
echo ”...erfolgreich ins Backup-Verzeichnis gewechselt”
else
echo ”konnte nicht ins Backup-Verzeichnis wechseln”
exit 0
fi
# echo Nachricht
echo ”Exportiere SQL Speicherauszug”
if
#Speicherauszug der DB in eine .sql Datei
mysqldump --user=BENUTZERNAME ¬
--password=PASSWORT DATENBANK > DBBACKUP.sql;
then
#echo Erfolgreich-Nachricht
echo ”SQL Speicherauszug erfolgreich erstellt”
else
#echo error Nachricht
echo ”mysqldump error”
exit 0
fi

(Für eine bessere Darstellung habe ich hier ¬ benutzt.)
Der Original-Tipp ist [URL=http://www.andybudd.com/archives/2004/03/idiots_guide_to_backingup_mysql_on_os_x/]hier[/URL] zu finden (Englisch).
Ich habe das auf Mac OS X 10.3.9 Server am Laufen.
Sollte aber auch mit Tiger funktionieren, sofern MySQL installiert und am Laufen ist.

[zo: Ich mache bei solchen Backupskrips noch gerne Folgendes:
Irgendwo im obersten Bereich diese Zeile einfügen:

datenow=`date ”%d%m”`

Damit wird das aktuelle Datum als ”Tagmonat” in der Variable ”datenow” gespeichert (z.B. 0410 für den 4. Oktober).
Anschliessend unten in der mysqldump-Zeile so etwas:

mysqldump -u BENUTZERNAME -p PASSWORT DATENBANK > ¬
DBBACKUP_${datenow}.sql;

Jetzt wird das Backup (statt jedesmal das alte Backup zu überschreiben) in eine Datei DBBACKUP_0410.sql gepackt. Damit hat man dann Backups in mehreren Stadien auf der Platte. – Ich war schon froh darüber, denn wenn man Fehler nicht rechtzeitig bemerkt, ist auch das Backup futsch.]

Spezifikationen

Hits

2451

© by macjaner.ch | Powered by GoeGG-ArT.ch