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

Deixe uma resposta

O seu endereço de e-mail não será publicado. Campos obrigatórios são marcados com *