Springe zu: Hauptnavigation, Themennavigation, Seiteninhalt, Spezielle Seiten

Datenbanken mit AutoMySQLBackup sichern

Mit dem Programm mysqldump können Sicherungen von MySQL-Datenbanken durchgeführt werden. Ich suchte aber nach einer Möglichkeit, bei der ich nicht jede zu sichernde Datenbank manuell einer Liste hinzufügen muss und die Sicherungen für jede Datenbank in einer eigenen Datei abgelegt werden. Im Debianforum wurde ich auf das Skript automysqlbackup hingewiesen.

Download und Konfiguration

Das Skript kann von der Sourceforge Projektseite oder von meinem Server aus dem Verzeichnis /pub/automysqlbackup/ heruntergeladen werden. Der Download mit dem Programm wget kann z. B. so durchgeführt werden:

etch:~# wget www.linux-fuer-blinde.de/pub/automysqlbackup/automysqlbackup.sh.2.5

Ich würde das Skript in automysqlbackup.sh umbenennen:

etch:~# mv automysqlbackup.sh.2.5 automysqlbackup.sh

Für die Anpassung der Konfiguration kann z. B. der Texteditor vim verwendet werden.

Im Skript sind Benutzername und Kennwort für den MySQL-Server anzupassen. Der Benutzername wird in Zeile 28 mit der Variabel USERNAME festgelegt. Das Kennwort wird in der Variable PASSWORD gespeichert und in zeile 31 definiert. Da vermutlich ohnehin der Hostname localhost verwendet wird, kann die Zeile 34 unverändert bleiben.

Die Liste der zu sichernden Datenbanken wird in Zeile 37 durch die Variable DBNAMES gesteuert. Möchte man alle für den Benutzer erreichbaren Datenbanken sichern, ist hier der Wert all zuzuweisen. Da ich dies wünsche und die Liste der Datenbanken nicht manuell pflegen möchte, hat diese Zeile bei mir folgenden inhalt:

DBNAMES="all"

In der 40. zeile legt die Variable BACKUPDIR das Verzeichnis für die Ablage der Backups fest. Standardmäßig werden die Sicherungen im Verzeichnis /backups/ abgelegt, das beim ersten Lauf erstellt wird.

Das Skript kann Informationen per Mail verschicken. Es ist möglich, dass man die erstellten Backups per Mail erhält oder nur informiert wird, wenn es bei der Erstellung der Datensicherung zu einer Fehlermeldung kam. Was per Mail verschickt wird, regelt in Zeile 48 die Variable MAILCONTENT. Da ich nur bei aufgetretenen Fehlern informiert werden möchte, weise ich der Variable den Wert quiet zu. Meine E-Mail-Adresse hinterlege ich in zeile 54 in der Variable MAILADDR.

Der Wochentag für die Erstellung des wöchentlichen Backups wird von der Variable DOWEEKLY gesteuert, der standardmäßig den Wert 6 für Samstag enthält. Das monatliche Backup wird immer am 1. des Monats erstellt.

Ein manuelles Backup erstellen

Bevor die Erstellung des Backups durch einen Cronjob automatisiert wird, soll ein manueller Durchlauf erfolgen. Standardmäßig ist das Shellskript nicht ausführbar. Mit dem folgenden Befehl wird dem Eigentümer das Ausführrecht erteilt:

etch:~# chmod u+x automysqlbackup.sh

Nun kann das Skript gestartet werden:

etch:~# ./automysqlbackup.sh

Hat alles geklappt, befinden sich unterhalb von /backups/ die Verzeichnisse daily, monthly und weekly. Für jede gesicherte Datenbank wird unterhalb von /backups/daily/ ein extra Verzeichnis angelegt. Darin befinden sich die täglichen Backups der jeweiligen Datenbank. Selbiges gilt für die anderen beiden Verzeichnisse.

Einen Cronjob anlegen

Das Sicherungs-Skript soll täglich von einem Cronjob ausgeführt werden. Bevor ich eine Datei für den entsprechenden Skript-Aufruf anlege, verschiebe ich das Skript in das Verzeichnis /backups/:

etch:~# mv automysqlbackup.sh /backups/

Zum Schluss erstelle ich im Verzeichnis /etc/cron.daily/ eine Datei mit dem namen automysqlbackup, die anschließend noch ausführbar gemacht wird. Der Inhalt der Datei /etc/cron.daily/automysqlbackup lautet:

#!/bin/sh
/backups/automysqlbackup.sh

Datum der Veröffentlichung: Sonntag, 16.09.2007

Nach oben

Diese Seite drucken