Accueil  > Dev  > Bash  >  Sauvegarde Mysql

Definition

Un script d'automatisation de sauvegarde MySQL est un script conçu pour automatiser le processus de sauvegarde des bases de données MySQL. Voici une description générale de ce à quoi un tel script pourrait ressembler et des fonctionnalités qu'il pourrait inclure :

Connexion à MySQL : Le script se connecte à la base de données MySQL à l'aide d'informations d'identification appropriées, telles que le nom d'utilisateur et le mot de passe.

Sélection des bases de données : Il peut être configuré pour sauvegarder toutes les bases de données ou une sélection spécifique de bases de données MySQL.

Création d'un répertoire de sauvegarde : Avant de commencer la sauvegarde, le script peut créer un répertoire de sauvegarde avec une structure de nommage appropriée, par exemple en utilisant la date et l'heure actuelles pour identifier la sauvegarde.

Exportation des données : Le script exécute les commandes SQL nécessaires pour exporter les données de chaque base de données sélectionnée vers des fichiers de sauvegarde. Cela peut être fait à l'aide de la commande mysqldump.

Compression des sauvegardes : Après l'exportation des données, le script peut compresser les fichiers de sauvegarde pour économiser de l'espace disque et faciliter le stockage et le transfert.

Rotation des sauvegardes : Pour éviter l'accumulation excessive de sauvegardes, le script peut être configuré pour supprimer les sauvegardes les plus anciennes après un certain nombre de jours, semaines ou mois.

Gestion des erreurs : Le script doit être capable de détecter les erreurs lors de l'exécution des différentes étapes du processus de sauvegarde et de les signaler de manière appropriée, par exemple en envoyant un e-mail d'alerte à l'administrateur système.

Journalisation des activités : Il est utile que le script enregistre les détails de chaque sauvegarde effectuée, y compris les bases de données sauvegardées, la date et l'heure de la sauvegarde, les éventuelles erreurs rencontrées, etc.

Planification des sauvegardes : Enfin, le script peut être intégré à un planificateur de tâches (comme cron sur les systèmes Unix/Linux) pour exécuter automatiquement la sauvegarde à des intervalles réguliers, par exemple chaque nuit.

En résumé, un script d'automatisation de sauvegarde MySQL simplifie et rationalise le processus de sauvegarde des bases de données MySQL, en garantissant que les données sont régulièrement sauvegardées de manière fiable et sécurisée.

 

Le Script

#!/bin/bash
HOME="/home/admin/BACKUP_MYSQL" # exemple : /home/users/toto
DIR_BLOG="$HOME/logs" # exemple : /public_html/dotclear
CURRENTDATE=$(date +%Y%m%d)
log_appli="$DIR_BLOG/log-$CURRENTDATE.log";
DIR_BACKUP="$HOME/backup" # exemple : /backup
SQL_HOST="localhost"
SQL_USER="mysql_user"
SQL_PASS="mysql_password"
MAIL_TO="mail@mail.com"
MAIL_SUBJECT="[$CURRENTDATE] Sauvegarde SQL"
MAIL_MESSAGE="En piece jointe la base de donnees en date du $CURRENTDATE"
liste=$(cat $HOME/Liste);
for domaine in $liste
do
SQL_BASE=$domaine;
DBDUMP_FILENAME="$SQL_BASE-$CURRENTDATE.sql"
echo "Export de la base de donnees..." >> $log_appli;
touch $DIR_BACKUP/$DBDUMP_FILENAME
mysqldump -h $SQL_HOST -u $SQL_USER --password=$SQL_PASS $SQL_BASE > $DIR_BACKUP/$DBDUMP_FILENAME
echo "Envoi de la sauvegarde MySQL par email  $MAIL_BACKUP." >> $log_appli;
echo "Compression de l'export..." >> $log_appli;
tar czf $DIR_BACKUP/$DBDUMP_FILENAME.tar.gz $DIR_BACKUP/$DBDUMP_FILENAME
echo "Creation de l'achive globale..."
tar czf $DIR_BACKUP/puc$CURRENTDATE.tar.gz $DIR_BLOG $DIR_BACKUP/$DBDUMP_FILENAME.tar.gz
echo $MAIL_MESSAGE | mail -s $SQL_BASE-$MAIL_SUBJECT -a $DIR_BACKUP/$DBDUMP_FILENAME.tar.gz $MAIL_TO
#echo $MAIL_MESSAGE | mail -s $SQL_BASE-$MAIL_SUBJECT -a $DIR_BACKUP/$DBDUMP_FILENAME.tar.gz $MAIL_TO < $DIR_BACKUP/$DBDUMP_FILENAME.tar.gz;
echo "Suppression des fichiers tempporaires..."
#rm -f $DIR_BACKUP/$DBDUMP_FILENAME
#rm -f $DIR_BACKUP/$DBDUMP_FILENAME.tar.gz
echo "Sauvegarde effectuee dans $DIR_BACKUP/$SQL_BASE-$CURRENTDATE.sql"
done

 

Publié le
Modifié le