[Tutorial] Backup do MySQL em ambiente Linux
Enviado: 13 Jun 2013 11:47
Segue um exemplo de script para fazer backup dos bancos do MySQL em servidores Linux. O script é auto explicativo e comentado, acredito que não seja necessário explicar seu funcionamento. Qualquer dúvida poste ai 

Código: Selecionar todos
#!/bin/sh
# Script para Backup dos bancos MySQL - Faz backup de todos os bancos contidos no MySQL Server
# Arquivo de saida enviado para /home/mysql/ verifica e remove backups anteriores a 20 dias
# No final da rotina dispara um email confirmando que rodou com sucesso, utilize o ssmtp para os envios
DATA=`date +%d-%m-%Y`
unset PATH
MYSQLUSER="usuariorootmysql"
MYSQLPWD="senhadousuarioroot"
MYSQLHOST="localhost"
MYSQLBACKUPDIR="/home/mysql/Backup-$DATA"
SUBJECT="HOSTNAME DO SERVIDOR - Backup MySQL - $DATA"
EMAIL="[email protected]"
MK=/bin/mkdir;
RM=/bin/rm;
GREP=/bin/grep;
MYSQL=/usr/bin/mysql;
MYSQLDUMP=/usr/bin/mysqldump;
XARGS=/usr/bin/xargs;
FIND=/usr/bin/find;
TAR=/bin/tar;
UUENCODE=/usr/bin/uuencode;
MAIL=/usr/bin/mail;
$MK $MYSQLBACKUPDIR
for i in $(echo 'SHOW DATABASES;' | $MYSQL -u$MYSQLUSER -p$MYSQLPWD -h$MYSQLHOST|$GREP -v '^Database$'); do
$MYSQLDUMP \
-u$MYSQLUSER -p$MYSQLPWD -h$MYSQLHOST \
-Q -c -C --add-drop-table --add-locks --quick --skip-lock-tables \
$i > $MYSQLBACKUPDIR/$i.sql;
done;
$TAR -cvzpf $MYSQLBACKUPDIR.tgz $MYSQLBACKUPDIR
$RM -r $MYSQLBACKUPDIR
$FIND /home/mysql/ -mtime +20|$XARGS rm
(echo "O script de backup dos bancos MySQL rodou com sucesso no servidor HOSTNAME DO SERVIDOR") | $MAIL -s "$SUBJECT" $EMAIL
exit 0