Erstmal legen wir die Verzeichnis /var/backup und /var/backup/logs an. Man kann auch andere verwenden, dann muss man jedoch das script anpassen.
passwort muss durch das mysql-root passwort ersetzten werden. Das script kann man dann z.B. als /usr/local/bin/mysqlbackup speichern. Man sollte es auf jedenfall chmod 700 setzten, damit niemand das root passwort lesen kann.
Hier das Script:
Code: Select all
#!/bin/sh
date=`date -I`
mysqlcheck --all-databases --auto-repair --extended --optimize -uroot -ppasswort >/var/backup/logs/mysqlcheck-$date.log
mysqldump --all-databases -uroot -ppasswort --opt | bzip2 -c > /var/backup/databasebackup-$date.sql.bz2
rm /var/backup/databasebackup-current.sql.bz2
rm /var/backup/logs/mysqlcheck-current.log
ln -s /var/backup/databasebackup-$date.sql.bz2 /var/backup/databasebackup-current.sql.bz2
ln -s /var/backup/logs/mysqlcheck-$date.log /var/backup/logs/mysqlcheck-current.log
Code: Select all
0 3 * * * /usr/local/bin/mysqlbackup
Unter /var/backup/logs kann man die logs von mysqlcheck einsehen.
Fertig ist das automatische tägliche Backup. Ohne Zusatzkosten, es fällt nur Traffic an.
Wenn man das Backup rückspielen möchte kann man folgenden Befehl benutzen:
Code: Select all
bzcat databasebackup-current.sql.bz2 | mysql -uroot -ppasswort