Shell Script : Dump MySQL

Segue abaixo meu script de DUMP MySQL em Shell, depois da operação é executado um find no diretório do caminho do backup definindo a retenção de acordo com o valor da variável.

OBS: Caso haja falha é enviado um email para o ADM.

STORAGE_PATH="/mysql/bkp" 
DBLIST="/mysql/bkp/DatabaseList"
LOGFILE="/var/log/mysql_backup.log"
HOST=hostname.example.com
USER="root"
PASSWD="password"
NOW=$(date +"%m-%d-%Y-%s")
RETENTION=2

#DB List
mysql -h $HOST -u $USER -p$PASSWD  --silent -N -e 'show databases' > $DBLIST
cd $STORAGE_PATH


# Generate Dumps and compact with GZIP.
for DATABASE in $(cat $DBLIST)
   do
    mysqldump --single-transaction -u $USER -p$PASSWD --events --ignore-table=mysql.event  --databases $DATABASE | gzip -c > /mysql/bkp/$DATABASE-$NOW.sql.gz
          if [ $? -eq 0 ]
              then
                 echo  "$(date) DUMP com sucesso  " >> $LOGFILE
              else
                 echo  "$(date) DUMP com falha " >> $LOGFILE
                 mailx -s "`date` Falha no DUMP `hostname`" email@example.com
             fi
        done


# Retention for 2 days after create
find $STORAGE_PATH/*.gz -ctime $RETENTION -exec rm -f {} \;

Também temos uma versão mais simples em python :

http://fajlinux.com.br/scripts/mysql-dump-de-cos-com-python/