2009 09 15 Automatizando o backup do Mysql através de um script
Post
Cancel

Automatizando o backup do Mysql através de um script

Script de Backup do MySQL

#!/bin/bash
# backup_mysql.sh - Copyright (C) 2009 Bruno Tadeu Russo

# Definicao das variaveis
DESTINO=/mnt/mysql/
DATAI=`date +%d-%m-%Y-%Hh.%Mmin`
DATA=`date +%a-%m-%Y`

echo "1" > /tmp/backup-erro.log
echo "|--------------------INICIO--------------------|" > /tmp/backup.log
echo -e "Data e Hora de Inicio" >> /tmp/backup.log
echo -e "$DATAI" >> /tmp/backup.log
echo -e "Relacao de Banco de Dados" >> /tmp/backup.log

mysql -u root < lista_database.sql > saida.txt

sed 1d saida.txt > saida1.txt
sed 1d saida1.txt > saida.txt

cat saida.txt | while read BANCO;
do
mysqldump --database $BANCO -u root | gzip > $DESTINO$BANCO.bkp.gz 2> /tmp/backup-erro.log
echo -e "$BANCO ==> $DESTINO$BANCO.bkp.gz " >> /tmp/backup.log
done

STATUS=`cat /tmp/backup-erro.log | grep backup -c`

TITULO="OK - $HOSTNAME - MySQL - Banco de Dados"
if [ $STATUS -ne 0 ]; then
TITULO="ERRO - $HOSTNAME - MySQL - Banco de Dados"
echo "Copia - ERRO" >> /tmp/backup.log
cat /tmp/backup-erro.log >> /tmp/backup.log
fi

echo -e "Backup finalizado com sucesso!" >> /tmp/backup.log
echo -e "Tamanho do arquivo Final:" >> /tmp/backup.log
du -sh $DESTINO*.bkp.gz >> /tmp/backup.log

DATAF=`date +%d-%m-%Y-%Hh.%Mmin`
echo -e "Data e hora de termino: $DATAF" >> /tmp/backup.log
echo -e "|----------------------FIM----------------------|" >> /tmp/backup.log

mail -s "$TITULO" $EMAIL < /tmp/backup.log

Para que funcione sem solicitar senha, basta configurar o arquivo ~/.my.cnf com o seguinte parâmetro:

[client]
password = SUA_SENHA

This post is licensed under CC BY 4.0 by the author.