
Wie wichtig die Sicherung einer MySQL-Datenbank ist, merkt man spätestens dann, wenn die Festplatte vom Server einen weg hat und die Daten verloren sind. Schon vorher sollte man sich darum kümmern, dass die Datenbank in regelmäßigen Abständen gesichert wird.
Ich möchte euch ein MySQL Backup Script der Datenbank vorstellen. Dieses Bash Script sichert alle MySQL-Datenbanken, komprimiert die Daten und sendet diese an einen FTP-Backup-Server voll automatisch. Ich übernehme keine Haftung für Schäden, die durch das Script entstehen. Es liegt also an euch dieses gegebenenfalls anzupassen.
Script zur Sicherung von MySQL-Datenbanken
{code}#!/bin/bash
echo “Alle MySQL-Datenbanken sichern:”
# Bereinigte Liste der Datenbanken erzeugen
# “MYSQLROOTPASSWORT” ist das MySQL-Rootpasswort:
mysqlshow -uroot -pMYSQLROOTPASSWORT | awk ‘{print $2}’ | grep -v Databases | sort >/tmp/dbaselist.txt
# Wohin sollen die ganzen Backups geschrieben werden?
cd /backup/DB
# Lösche alte Sicherungen
rm `date +%Y`* -R
mkdir -p `date +%Y%m%W`
cd `date +%Y%m%W`
for x in `cat /tmp/dbaselist.txt`; do
echo “Datenbank: $x sichern”;
mysqldump –opt -uroot -pMYSQLROOTPASSWORT $x >$x.sql;
done;
echo “Alte .gz-Dateien loeschen:”
rm *.gz
echo “Dateien zippen:”
gzip *
cd ..
echo “Alte Sicherung löschen:”
rm DB_server.tar.gz
echo “Alle Datenbanken zu einer Datei:”
tar cfvz /backup/DB/DB_server.tar.gz /backup/DB/`date +%Y%m%W`
echo “Verbindung zum Backup-Server herstellen:”
lftp -u USERNAME,PASSWORT SERVERADRESSE -e “cd DB && rm DB_server.tar.gz && put DB_server.tar.gz && quit”;
{/code}
Hinweise zum Backup-Script und Vorbereitungen
- Vorher müssen die Ordner /backup/DB auf dem eigenen Server und dem Backup-Server angelegt werden.
- Auf dem Backup-Server muss eine Datei “DB_server.tar.gz” unter /backup/DB angelegt werden, da das Script sonst versucht diese nicht existierende Datei zu löschen und mit einer Fehlermeldung abbricht.
- lftp ist ein FTP-Client. Dieser muss vorher installiert werden (apt-get install lftp)
- Damit die Sicherungen regelmäßig durchgeführt werden, muss das MySQL Backup Script in eine Datei eingefügt werden und ein Cronjob eingerichtet werden, der dieses Bash Script regelmäßig aufruft. Die Rechte müssen für die Datei auf 777 gesetzt werden. (chmod 777 BACKUP-SCRIPT)
Vorschläge und Hinweise zum Backup Script der Datenbank nehme ich gerne an. Schreibt also ruhig Kommentare rein. Wie sichert ihr euren Server?


Also es ist ein Bash-Script für einen Linux-Root oder?