Ce script sauvegarde les bases de données MySQL en générant dans le répertoire “BACKUPDIR” un fichier par base de donnée.
Les fichiers générés sont au format “BACKUPDIR/DATE.NOMBASE.sql”.
=========================================================================
Les fichiers générés sont au format “BACKUPDIR/DATE.NOMBASE.sql”.
=========================================================================
#!/bin/bash # Script de sauvegarde des bases MySQL. # By SEBIHI YACINE # Sauvegarde les bases de données MySQL sous # sous forme d'un fichier par base. # # Définition des variables de connexion : MYSQLUSER="root" ; MYSQLPASS="Mot de passe" ; MYSQLHOST="localhost" ; MYSQLPORT="3306" ; # Options MySQL Dump : MYSQLDUMPOPTS="--add-drop-database --add-drop-table --create-options" # Définition du répertoire de sauvegarde : BACKUPDIR="/tmp/mysql" ; # Définition des binaires : MYSQL="/usr/bin/mysql" ; MYSQLDUMP="/usr/bin/mysqldump" ; MYSQLADMIN="/usr/bin/mysqladmin" ; MKDIR="/bin/mkdir" ; DATE="/bin/date" ; # Format de la date sans espaces (voir man date) : # Exemple "%Y%m%d" DATEFORMAT="%s" ; ## FONCTIONS # Fonction de sortie de script : die() { echo $@ >&2 ; exit 1 ; } # Fonction de test des binaires : check_binaries() { [ -x ${MYSQL} ] || die "File \"${MYSQL}\" not found ! Check definition in ${0}." ; [ -x ${MYSQLDUMP} ] || die "File \"${MYSQLDUMP}\" not found ! Check definition in ${0}." ;
[ -x ${MYSQLADMIN} ] || die "File \"${MYSQLADMIN}\" not found ! Check definition in ${0}." ;
[ -x ${DATE} ] || die "File \"${DATE}\" not found ! Check definition in ${0}." ; [ -x ${MKDIR} ] || die "File \"${MKDIR}\" not found ! Check definition in ${0}." ; } # Fonctions de sauvegarde : backup() { ${MYSQLADMIN} -s --host=${MYSQLHOST} --port=${MYSQLPORT} -u ${MYSQLUSER}
--password=${MYSQLPASS} ping 2>&1 > /dev/null ; [ $? -eq 0 ] || die "Impossible to connect ${MYSQLHOST}:${MYSQLPORT}." ; # Si le répertoire des sauvegardes n'existe pas il est créé : [ ! -d ${BACKUPDIR} ] && ${MKDIR} -p ${BACKUPDIR} ; # Pour chaque base, for db in `${MYSQL} --host=${MYSQLHOST} --port=${MYSQLPORT} -u ${MYSQLUSER}
--password=${MYSQLPASS} -sBe 'show databases'` ; do # Création d'un fichier de dump au format BACKUPDIR/DATE_FORMAT_DATEFORMAT.NOM_BASE.sql ${MYSQLDUMP} ${MYSQLDUMPOPTS} --host=${MYSQLHOST} --port=${MYSQLPORT} -u ${MYSQLUSER} \ --password=${MYSQLPASS} ${db} --result-file="${BACKUPDIR}/$(${DATE} +${DATEFORMAT}).${db}.sql" ; done } # Main corp du script : check_binaries ; backup ;
===================================================================================
Aucun commentaire :
Enregistrer un commentaire