Hallo, Am Montag, 17. September 2007 21:51 schrieb Michael Herrmann:
Hallo,
mein cron macht des Nächtens täglich einen mysqldump über die gesamte Datenbank. Das Ergebnis ist eine 500 MB große sql-Datei. (Wird natürlich gegzipt und getart, dann sinds nur noch 50 MB.) Da es beim Wieder-Einspielen eines Backups aber darauf ankommt, dass ich meistens nur die Daten einer einzigen Database brauche (weil irgendso ein Heini irgendwo seine Daten zerstört hat), mache ich vor dem tar und gzip ein csplit -k mysql_dump.sql /^CREATE\ DATABASE/ {100} Dadurch bekomme ich pro Database eine eigene Datei. Diese werden dann alle getart, gezippt und weggesichert. Nachteil: Die Einzeldateien heißen xx01, xx02 usw. Im Ernstfall muss ich also kurz in jede einzelne Datei reinschauen, welche Database da erzeugt wird...
nach etwas Suchen bin ich auf folgendes Skript gestoßen: #!/bin/bash echo "Alle MySQL-Datenbanken sichern:" # Bereinigte Liste der Datenbanken erzeugen # "geheim" ist das MySQL-Rootpasswort: DBASELIST=`mktemp` mysqlshow -pgeheim | awk '{print $2}' | grep -v Databases | sort >$DBASELIST # Wohin sollen die ganzen Backups geschrieben werden? cd /irgendeinverzeichnis mkdir -p `date +%Y%m%W` cd `date +%Y%m%W` for x in `cat $DBASELIST`; do echo "Datenbank: $x sichern"; mysqldump --opt -pgeheim $x >$x.sql; done; echo "Alte .gz-Dateien loeschen:" rm *.gz echo "Dateien zippen:" gzip * Das tut eigentlich genau das, was ich wollte. -- Michael Herrmann -- Um die Liste abzubestellen, schicken Sie eine Mail an: opensuse-de+unsubscribe@opensuse.org Um eine Liste aller verfuegbaren Kommandos zu bekommen, schicken Sie eine Mail an: opensuse-de+help@opensuse.org