Wichtig: kein Leerzeichen bei -pPasswort!
DATUM=`date +%Y-%m-%d_%H.%M`
echo 'Erstelle automatisches Backup der MySQL Datenbank ...'
echo 'Datum:' $DATUM
mysqldump -u USER -pPASSWORT -A > $DATUM.sql
if [ $? ]
then echo 'Backup erfolgreich'
else echo 'Fehler bei Backup'
fi
Um das backup in regelmäßigen Abständen automatisch auszuführen empfielt es sich einfach einen Cronjob einzurichten. Dabei lassen sich
mit >crontab -e Cronjobs Anlegen, Ändern und Löschen. mit >crontab -l erhält man eine Liste bereits eingerichteter Cronjobs.
Cronjobs sind in der Regel so aufgebaut:
* * * * * auszuführender Befehl
┬ ┬ ┬ ┬ ┬
│ │ │ │ │
│ │ │ │ └──── Wochentag (0-7)
│ │ │ └────── Monat (1-12)
│ │ └──────── Tag (1-31)
│ └────────── Stunde (0-23)
└──────────── Minute (0-59)
Möchten wir z.B. dass unser Backup Script Jeden Sonntag um 01:00 Morgens ausgeführt wird, Erstellen wir einen Cronjob mit
00 01 * * 7 /pfad/zum/backup/unserscript
Achtung! Der Sonntag kann auch der Kennung 0 entspechen!
Möchten wir eine Periode Angeben, wie z.B. jede 15 Minuten, so würde unser Cronjob so aussehen
*/15 * * * * /pfad/zum/backup/unserscript
Des weiteren empfielt es sich eine Logdatei zu den Backups Anzulegen. Am einfachsten geht das, in dem man die Ausgabe des Scriptes in eine Datei Lenkt
00 01 * * 7 /pfad/zum/backup/unserscript >> ~/backupdblog.txt
Tags: Admin, Backup, bash, cron, cronjob, date, linux, mysql, mysqldump, script, server, sh, shell, unix, update