Regelmässige MySQL Backups erstellen

Nach dem ich an dieser Stelle schon über MySQL Dumps geschrieben habe, möchte ich euch mal noch ein kleines Script vorstellen, mit dem ich auf diversen Servern regelmässige MySQL-Dumps mache:

#!/bin/sh
BACKDIR="/export/backup/mysql"
BACKEXT="sql.bz2"
OLDEXT="sql.bz2.old"

BACKFILE=backup

for i in $(mysqlshow -u backup | grep -v "^+" | grep -v Databases | cut -d " " -f 2 | grep -v information_schema);
do
    mysqldump -u backup --opt -Q $i | bzip2 -c > $BACKDIR/$i.neu
    if [ -f $BACKDIR/$i.$BACKEXT ] ; then
        cmp $BACKDIR/$i.neu $BACKDIR/$i.$BACKEXT > /dev/null 2>&1
        if [ $? != 0 ] ; then
            mv $BACKDIR/$i.$BACKEXT $BACKDIR/$i.$OLDEXT
            chmod 600 $BACKDIR/$i.$OLDEXT
        fi
    fi
    mv $BACKDIR/$i.neu $BACKDIR/$i.$BACKEXT
    chmod 600 $BACKDIR/$i.$BACKEXT
done

Das Script macht einzelne Dumps jeder Datenbank auf dem Server. Es setzt voraus dass es einen User namens „Backup“ gibt, der die passenden Rechte hat, und macht die Backups in /export/backup/mysql. Die Backups werden mit Bzip2 komprimiert und man hat immer den aktuellen ump plus den davor vorrätig (das Script rotiert die Backups durch).

Nutzt es auf eigene Gefahr😉

2 Gedanken zu „Regelmässige MySQL Backups erstellen

    • Hallo Ma

      Das ist ein PHP-Script, bzw. ein Script für die Ausführung im Browser. Man hat aber nicht zwingend auf jedem MySQL-Server einen Webserver drauf. Ausserdem möchte man ja vielleicht einfach ein kleines Script, das automatisch Dumps macht.

      Mysqldumper mag für einige Leute was feines sein, für mich ist es aber das falsche.

      Gruss

Schreibe einen Kommentar

Trage deine Daten unten ein oder klicke ein Icon um dich einzuloggen:

WordPress.com-Logo

Du kommentierst mit Deinem WordPress.com-Konto. Abmelden / Ändern )

Twitter-Bild

Du kommentierst mit Deinem Twitter-Konto. Abmelden / Ändern )

Facebook-Foto

Du kommentierst mit Deinem Facebook-Konto. Abmelden / Ändern )

Google+ Foto

Du kommentierst mit Deinem Google+-Konto. Abmelden / Ändern )

Verbinde mit %s