Automatizando o backup do Mysql através de um script

Publicado em 15/09/2009 por Bruno Russo

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

Esta entrada foi publicada em Diário, Dicas, Documentação, Programas com as palavras-chave backup, mysql, mysqldump, shell. Adicione o link permanente aos seus favoritos.