Initialement, j'utilisais :

mysqldump --host="$MYSQL_HOST" --user="$MYSQL_LOG" --password="$MYSQL_PASS" --quote-names --complete-insert --extended-insert --add-drop-table --compress --all-databases > monFichierDumpContenantTouteLesBases.sql

Mais mon fichier intégral de 3Go est impossible à gérer pour ré-intégrer une seule base.

Voici donc un script pour dumper base par base : bak_mysql_dump_parBases.sh :

#!/bin/bash

export BACKUPDIR=~/BackMySqlParBases/
export BTMPFILE=~/BackMySqlParBases.tmp
export DATE=`/bin/date '+%Y%m%d'`
export MYSQL_HOST="localhost"
export MYSQL_USER="monUserMysql"
export MYSQL_PASS="monPassMysql"

[ -d $BACKUPDIR ] || mkdir -p $BACKUPDIR

mysql -h ${MYSQL_HOST} -u ${MYSQL_USER} -p${MYSQL_PASS} > ${BTMPFILE} <<EOT
SHOW DATABASES;
EOT

if [ -f ${BTMPFILE} ] ; then
        for db in `cat ${BTMPFILE} | egrep -v "Database|information_schema"`
        do
                echo $db
                export FILEBK=$db.$DATE.sql
                mysqldump -h ${MYSQL_HOST} -u ${MYSQL_USER} -p${MYSQL_PASS} $db > $BACKUPDIR/$FILEBK
                #[ -f $BACKUPDIR/$FILEBK ] && gzip --force --best $BACKUPDIR/$FILEBK
                #[ -f $BACKUPDIR/$FILEBK.gz ] && scp $BACKUPDIR/$FILEBK.gz $HOST:$BACKUPDIR/
        done
fi

Et pour finir, l'automatisation par cron :

#  Dump BASE PAR BASE
#               Suppression des vieux fichiers
30 02 * * * find ~/BackMySqlParBases -mtime +3 -type f -exec rm -fv {} \;
#               Dump
45 02 * * * ./bak_mysql_dump_parBases.sh