search
top

Générer un dump par base MySQL

  • 2010/07/28 – Mise en ligne du script
  • 2010/10/04 – Update pour gerer les code de retour en cas d’erreur lors d’un dump
#!/bin/sh

##
# Configuration

# Fichier avec les informations de connexion MySQL
MYCNF='/root/.my.cnf'
# Emplacement des bases
DBROOT='/home/mysql/datas/'
# Emplacement des sauvegardes
DSTBCK='/home/mysql/backup'

##
# Scripts

DBS=`find $DBROOT -mindepth 1 -maxdepth 1 -type d | sed -e s,$DBROOT,,`
DBNB=`echo $DBS | wc -w`

RAPPORT=`date +%X`' - Debut du backup des bases\r\n'
i=1
FAILDUMP=0
while ((i <= $DBNB))
do
        COUNT='$'$i;
        DB=`echo $DBS | awk '{print $'$i' }'`
        /usr/bin/mysqldump --defaults-file=/etc/mysql/debian.cnf --routines --databases $DB > $DSTBCK'/'$DB'.sql'

        RETURNDUMP=$?
        if [ $RETURNDUMP -eq 0 ]; then
			gzip -fq $DSTBCK'/'$DB'.sql'
			RAPPORT=$RAPPORT`date +%X`' - Dump de la base '$DB' OK\r\n'
		else
			RAPPORT=$RAPPORT`date +%X`' - Dump de la base '$DB' NOK\r\n'
			((FAILDUMP += 1))
		fi
        ((i += 1))
done
RAPPORT=$RAPPORT`date +%X`' - Fin du backup des bases\r\n'

echo -e $RAPPORT >> $DSTBCK'/lastbackup.log'

if [ $FAILDUMP -ne 0 ]; then
	exit 1
fi

Laisser un commentaire

Votre adresse de messagerie ne sera pas publiée. Les champs obligatoires sont indiqués avec *

*

Vous pouvez utiliser ces balises et attributs HTML : <a href="" title=""> <abbr title=""> <acronym title=""> <b> <blockquote cite=""> <cite> <code> <del datetime=""> <em> <i> <q cite=""> <strike> <strong>

top