ePrivacy and GPDR Cookie Consent by Cookie Consent
Unterstütze unsere Tutorials mit einem WerbeClick!

MySQL Backup alle Datenbanken

2 Comments
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 -e 'show databases' --batch  | grep -v mysql | grep -v information_schema | grep -v Database | grep -v performance_schema )
 
        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...
You are a guest
or post as a guest
People in conversation:
Loading comment... The comment will be refreshed after 00:00.
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!