ePrivacy and GPDR Cookie Consent by Cookie Consent
+49 711 128 596 90     
Unterstütze unsere Tutorials mit einem WerbeClick!

Linux Tipps

Debian Tipp #24: Wenn Ihr System zu viel Plattenplatz belegt, probieren Sie doch mal die Pakete deborhpan und debfoster aus. Sie können ungenutzte Pakete ermitteln, und Vorschläge machen, was man entfernen kann.

MySQL Backup alle Datenbanken

Write a comment
Einrichtung einer regelmäßigen Datensicherung aller MySQL-Datenbanken auf einem Linux-Betriebssystem mit Cron und Gzip. Einfache Lösung mit Standard-Boardmitteln der meisten Linux-Distributionen.
 
Mit diesem Skript kann man manuell, oder per Cron alle MySQL-Datenbanken sichern.
Beispiel Aufruf des Skripts:
# mysql-backup.sh Montag /backups
 
 

MySQL Backup-Script

Name des Skripts: mysql-backup.sh
Das Skript nach /usr/local/sbin kopieren.
 
#! /bin/bash
 
PREFIX=$1
destination=$2
backupfolder=$destination/$PREFIX"_sqlbackup"
user="root"
password="secret"
 
#
# usage message
#
printUsage () {
        echo "USAGE: <prefix> <destination path>"
        exit 1
}
 

#
# backup function
#
backup () {
 
        echo "starting MySQL backup"

        databases=$( mysql -u$user -p$password <<< "SHOW DATABASES" | grep -v mysql | grep -v information_schema | grep -v Database )

        if [ ! -d $backupfolder ]; then
                mkdir $backupfolder
        fi
        
        for database in $databases
        do
                filename=$PREFIX.$database.sql.gz
                mysqldump -u$user -p$password $database | gzip > $backupfolder/$filename
                #Verbosity
                #echo done $filename
        done

        echo "done MySQL backup"
}
 
#
# main section
#
 
if [ $# -ne 2 ]; then
        printUsage
fi
 
backup
 

cron job

Abschließend muss jetzt noch ein cron job angelegt werden, der die Sicherung regelmäßig startet. Das Sicherungs-Skript erwartet 2 Parameter. Der erste Parameter ist ein Datei-Präfix, welcher vor den Sicherungs-Dateinamen geschrieben wird. Wir geben hier den Tag für die tägliche Sicherung und den Monat für die monatliche Sicherung mit Hilfe des date Kommandos mit. Das %-Zeichen muss bei der Verwendung innerhalb von Crontab allerdings noch mittels Backslash (\) escaped werden. Der zweite Parameter ist der Ziel-Ordner in dem die Sicherungsdateien abgelegt werden.

Beispiel: Cronjob in /etc/cron.d/mysql-backup
# Datensicherung täglich Nachts um 1:00 Uhr
0 1 * * * root /usr/local/sbin/mysql-backup.sh $(date +\%a) /var/mysql-backups/daily
 
# Datensicherung 1 x pro Monat immer am 1. um 3 Uhr
0 3 1 * * root /usr/local/sbin/mysql-backup.sh $(date +\%b) /var/mysql-backups/monthly

 
Jetzt sollten täglich Sicherungsdateien erzeugt werden die unter /var/mysql-backups zu finden sind.
Viel Spaß!
 
 
Say something here...
Cancel
You are a guest
or post as a guest
Loading comment... The comment will be refreshed after 00:00.

Be the first to comment.

Unterstütze unsere Tutorials mit einem Werbeclick!

Über uns

Wir sind ein agiles Team von Softwareentwicklungen, UX-Designern und IT-Supporten und haben uns auf individuelle Softwarelösung für den Mittelstand spezialisiert. Unsere besondere Stärken sind  Web-Anwendungen mit dem Symfony Framework sowie individuelle Industrielösungen für Produktionslinien, Servicetechniker oder Inspekteure zu entwickeln. Eine weitere Stärke ist die Erweiterung von Content Management Systemen wie beispielsweise Wordpress, Typo3, Drupal und Joomla. Das entwickeln von Apps für Android, Windows und Apple OS Systemen ist selbstverständlich!