Accueil | Tutoriaux | MySQL | Script de sauvegarde des bases MySQL.

Script de sauvegarde des bases MySQL.

Envoyer Imprimer PDF

Voici un petit script que j'ai réalisé qui permet de sauvegarder toutes les bases MySQL dans des fichiers séparés. Ce script sauvegarde les bases de données MySQL d'un serveur et réalise les opérations suivantes :

  • Check de la base de donnée.
  • Analyse de la base de donnée.
  • Dump de chaque base de données dans un fichier SQL distinct.
  • Tar des fichiers SQL générés dans un seul fichier.
  • Envoi par FTP du fichier .tar.gz de sauvegarde vers un autre serveur.
  • Suppression des fichiers locaux de sauvegardes de plus de 10 jours.

Source originale

1. Paramétrage du script :

#---------------------------------------------------------------#
# Paramétrage de la connection MySQL                                     #
#---------------------------------------------------------------#
 
#Nom de l'utilisateur qui lance le backup
user=nom_de_l_utilisateur
#Machine sur laquelle on se connecte host=host_mysql
#Mot de passe de l'utilisateur de backup pass=mot_de_passe
 
# Outil de dump MYSQLDUMP=mysqldump
#Outil de check MYSQLCHECK=mysqlcheck
# Options passées à MysqlDUMP OPTIONS="--add-drop-database --add-drop-table --complete-insert --routines
--triggers --allow-keywords --max_allowed_packet=50M --force"
    #---------------------------------------------------------------# # Paramétrage de la sauvegarde # #---------------------------------------------------------------#   # Répertoire temporaire pour stocker les backups TEMPORAIRE="/tmp/backup_mysql"   # Nom du serveur MACHINE="$(hostname)"   # Variable contenant la liste des bases de données BASES=""   # Date DATE="$(date +"%d-%m-%Y")" DATE2=`date --date '10 days ago' "+%d-%m-%Y"`
 
# Nom des fichiers de backup # Répertoire de destination du backup DESTINATION="/home/backups/mysql" FICHIER_BACKUP=$MACHINE"_BACKUP_MYSQL_"$DATE".tar.gz" FICHIER_EFFACER=$MACHINE"_BACKUP_MYSQL_"$DATE2".tar.gz"   #Informations FTP LOGIN_FTP=login_ftp
PASS_FTP=mot_de_passe_ftp
HOST_FTP=serveur_ftp



Vous pouvez paramétrer les options passées à MysqlDUMP dans la variable OPTIONS.
Dans le script de base les options suivantes ont été paramétrées :

--add-drop-database : ajoute les énoncés "DROP DATABASES"
--add-drop-table : ajoute les énoncés "Drop TABLE"
--routines : Sauvegarde les procédures et les fonctions pour chaque table
--triggers : sauvegarde les triggers de chaque table
--allow-keywords : Autorise les noms de colonnes étant des mots clés MySQL
--max_allowed_packet=50M : fixe la taille maxi des paquets envoyés à 50Mo
--force : permet d'ignorer les erreurs



2. Process de sauvegarde

#---------------------------------------------------------------#
# Process de sauvegarde                                         #
#---------------------------------------------------------------#
 
# Création du répertoire temporaire
if [ -d $TEMPORAIRE ];
then echo "Le repertoire existe";
else mkdir $TEMPORAIRE;
fi     # On construit la liste des bases de données BASES="$(mysql -u $user -h $host -p$pass -Bse 'show databases')"   # On lance le dump des bases for db in $BASES do #On lance un check et une analyse pour chaque base de donnée $MYSQLCHECK -u $user -h $host -p$pass -c -a $db # On lance un mysqldump pour chaque base de donnée $MYSQLDUMP -u $user -h $host -p$pass $OPTIONS $db -R >
$TEMPORAIRE"/"$MACHINE"-"$db"-"$DATE".sql";
done     # Création de l'archive contenant tout les dump #Cette archive est stockée dans le dossier défini pour la sauvegarde if [ -d $DESTINATION ]; then cd $TEMPORAIRE tar -cvzf $DESTINATION"/"$FICHIER_BACKUP *
fi     # On transfere l'archive par FTP cd $DESTINATION ftp -v -n $HOST_FTP <<SCRIPT
user $LOGIN_FTP $PASS_FTP bin put $FICHIER_BACKUP bye SCRIPT     # On supprime le fichier de plus de x jours if [ -f $DESTINATION"/"$FICHIER_EFFACER ]; then rm $DESTINATION"/"$FICHIER_EFFACER fi   # On suprime le répertoire temporaire if [ -d fichier ]; then rm -Rf $TEMPORAIRE fi
Pour question ou commentaire, reportez-vous à la section ci-dessous, ou aller 
faire un tour sur notre forum

Rétrolien(0)

Adresse URI pour un rétrolien sur cet article

Commentaires (0)

Flux RSS pour les commentaires

Ecrivez un commentaire

Réduire l'éditeur | Agrandir l'éditeur

busy
Mis à jour ( Mercredi, 13 Février 2008 08:11 )  

Syndication

Tag

Requires Flash Player 9 or better.

Publicités


Espace sécurisé



Les plus lus