MySQL Datenbanken sichern
		
		
		
		Zur Navigation springen
		Zur Suche springen
		
alle Datenbanken sichern
Sichert alle Datenbanken in eine Datei auf die lokale Platte, komprimiert sie und behält Backups x Tage.
#!/bin/bash
#
# MySQL DB Backup
#
export PATH=/usr/local/sbin:/usr/local/bin:/sbin:/bin:/usr/sbin:/usr/bin
DB_USER="user"
DB_PASSWD="passwort"
OUT="/root/backup/mysql-backup"
DATE=`date +%Y-%m-%d_%H:%M`
ALT=`date +%Y-%m-%d -d "7 days ago"`
# Backup aller Datenbanken in eine einzelne Datei erstellen
mysqldump --user=$DB_USER --password=$DB_PASSWD --events --all-databases > $OUT'/mysqldump.'$DATE'.sql'
# komprimieren
nice -n 19 gzip $OUT'/mysqldump.'$DATE'.sql'
# alte Backups löschen die älter als in $ALT definiert sind
rm -rf $OUT'/mysqldump.'$ALT*
alle Datenbanken einzeln sichern
Sichert jede einzelne Datenbank in eine Datei auf die lokale Platte, komprimiert sie und behält Backups x Tage.
#!/bin/bash
#
# MySQL DB Backup
#
export PATH=/usr/local/sbin:/usr/local/bin:/sbin:/bin:/usr/sbin:/usr/bin
DB_USER="user"
DB_PASSWD="passwort"
OUT="/root/backup/mysql-backup"
DATE=`date +%Y-%m-%d_%H:%M`
ALT=`date +%Y-%m-%d -d "7 days ago"`
for DB in $(mysql --user=$DB_USER --password=$DB_PASSWD -Bse 'show databases'); do
    # für jede DB die nicht die Systemeigenen DB's "information-schema", "mysql" oder "performance_schema" sind:
    # -sichere jede einzelne DB mit Namen. Ausgabe Bsp. mysqldump-DATENBANKNAME.2017-06-06_00:30.sql
    # -komprimiere sie
    # -lösche Backups die älter als X Tage sind wie in $ALT definiert (hier 7 Tage)
    if [ "$DB" != "information_schema" ] && [ "$DB" != "mysql" ] && [ "$DB" != "performance_schema" ]; then
        mysqldump --user=$DB_USER --password=$DB_PASSWD --events $DB > $OUT'/mysqldump-'$DB'.'$DATE'.sql'
        nice -n 19 gzip $OUT'/mysqldump-'$DB'.'$DATE'.sql'
        rm -rf $OUT'/mysqldump-'$DB'.'$ALT*
    fi
done