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/