Skip to content

Instantly share code, notes, and snippets.

@eric-pommereau
Created March 19, 2017 14:45
Show Gist options
  • Save eric-pommereau/4dce42a904291c283a55347d0a67b9f3 to your computer and use it in GitHub Desktop.
Save eric-pommereau/4dce42a904291c283a55347d0a67b9f3 to your computer and use it in GitHub Desktop.

Sauvegarde mysql automatisée sur Debian

Intoduction

Il s'agit d'automatiser la sauvegarde d'une base Mysql sous linux / Debian.

Il faut créer un script (.sh) qui réalise la sauvegarde et le nommage du fichier. Ensuite on créé une tâche planifiée (cron) qui exécute périodiquement la commande. Enfin un script de nettoyage pourra être créé pour supprimer les anciens fichiers en fonction de la politique retenue.

Création du script de sauvegarde

Crée un fichier de sauvrgarde backup-mysql-ati.sh

#!/bin/sh
# sauvegarde automatisée mysql

# Paramètres ---------------------------
USER=user
PASS=xxxxx
DESTINATION=/mnt/hnas/mysqlbackups
DB_NAME=ati

DATE=`date +%Y-%m-%d`
TIME=`date +%H:%M`

# Démarrage du script ------------------
# le echo sortira dans le fichier de log

echo "$DATE - $TIME - démarrage"

# Dump de la BDD
mysqldump -u $USER --password=$PASS $DB_NAME | gzip > $DESTINATION/$DB_NAME-$TIME.$DATE.sql.gz

# Fin de la sauvegarde -----------------
echo "$DATE - $TIME - Fin"

Création de la tâche planifiée (cron)

On définit une sauvegarde toutes les 6 heures dans le répertoire pointé par le script de sauvegarde. Le log (/home/vagrant/mysqlbackups/backup.log) est alimenté par la sortie du script (echo...)

crontab -e
# Ajouter
* */6 * * * /home/vagrant/mysqlbackups/backup-mysql-ati.sh >>/home/vagrant/mysqlbackups/backup.log

Suppression des anciens fichiers

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment