Faça backup do MySQL e envie para seu e-mail

Neste artigo será ensinado como se fazer um backup de um banco de dados MySQL e enviá-lo para um e-mail automaticamente.

[ Hits: 39.933 ]

Por: Perfil removido em 29/11/2005


Configurando



Supondo que o MySQL e o mutt estejam funcionando corretamente, devemos seguir com a criação dos arquivos do backup e pastas usadas.

Neste artigo utilizei a seguinte pasta, podendo ser mudada conforme sua escolha:

# mkdir /root/backup_
# cd /root/backup_


Já dentro da pasta criada, crie o arquivo "exec_backup" com as seguintes informações:

#! /bin/bash

#Criando a pasta
mkdir /root/backup_/BACKUP_`date +%d%m%y`

#Fazendo o dump do mysql de um determinado database
mysqldump --user=USUÁRIO --password=SENHA --database NOME_DATABASE > /root/backup_/BACKUP_`date +%d%m%y`/dump`date +%d%m%y`

#Pode também fazer o DUMP do MySQL inteiro
mysqldump --user=root --password=SENHA --opt -A > /root/backup_/BACKUP_`date +%d%m%y`/dumpCompleto`date +%d%m%y`


#Compactando a pasta
tar -czvf /root/backup_/BKP`date +%d%m%y` /root/backup_/BACKUP_`date +%d%m%y`.tgz


#Mandar email
cat /root/backup_/texto_email.txt | mutt -s "BKP `date +%d-%m-%y`" -a /root/backup_/BKP`date +%d%m%y`.tgz seuemail@dominio.com

#Apagando diretório
rm /root/backup_/BACKUP_`date +%d%m%y` -R

echo BACKUP REALIZADO COM SUCESSO!!!

Torne executável o arquivo exec_backup:

# chmod 755 exec_backup

Tem que se criar também um arquivo chamado "texto_email.txt". Nele você pode escrever o corpo do e-mail que será enviado no backup:

####################################
         BACKUP RAULZITO
         ---------  -----------
###################################
       por Danilo G. Baio
####################################
Página anterior     Próxima página

Páginas do artigo
   1. Requisitos
   2. Configurando
   3. Executando a rotina
   4. Restaurando o backup
   5. Conclusão
Outros artigos deste autor

Novidades do Kernel 2.6.35

Convertendo MBR para GPT com gdisk

Passos essenciais para configurar sua impressora no Linux

Migrando para Linux sem medo (parte 2)

Instalação do Squid com autenticação NTLM e Kerberos

Leitura recomendada

AIXGL + Beryl no Kubuntu 6.10 com uma Intel i810

Cluster Beowulf

ZABBIX Proxy com MySQL

Configurando mod_gzip no Apache

Linux como roteador Cisco

  
Comentários
[1] Comentário enviado por marcossilva em 30/11/2005 - 01:01h

Bem legal o seu artigo, simples, fácil de entender, e funciona direitinho, exceto a parte onde vc coloca o .tgz no nome do arquivo, aqui no meu computador eu tive q tirar essa parte, pois dava um erro e ele n encontrava o arquivo para anexar...
fora isso, show de bola :D
T++

[2] Comentário enviado por removido em 30/11/2005 - 10:19h

eu sempre uso sem esse ".tgz" no final, coloquei mesmo pra ficar bonitinho.

basta tirar o .tgz na hora de compactar e na hora de mandar o e-mail que funciona perfeito.

Valeu ai marcossilva nem tinha reparado..

abraços

[3] Comentário enviado por nexushu em 30/11/2005 - 12:18h

Valeu cara fazia tempo que eu estava vendo como eu poderia fazer esse tipo de backup ficou legalzinho ate mais

Abraços

[4] Comentário enviado por edmafer em 30/11/2005 - 13:35h

Aeeee mininu!

Excelente artigo!

[5] Comentário enviado por y2h4ck em 30/11/2005 - 23:03h

I ae cara, a sua ideia e ate legal, mas imagina fazer backup de uma base de dados de 10 Gb heuehueh :) haja conta de e-mail :]

Abracos

[6] Comentário enviado por removido em 01/12/2005 - 00:34h

y2h4ck ai vc já quer milagre.

Até local vai ser ruim de realizar esse backup.

Fiz isso pensando em coisas pequenas..
Algum website, ou um sistema pequeno.

abraços

[7] Comentário enviado por wanderleihuttel em 01/12/2005 - 11:00h

Show de Bola esse artigo...
Arquivos de até 10 megas dá boa...
é interessante até pra mandar os LOGS, que as vezes são grandes....
Wanderlei

[8] Comentário enviado por mgouveia em 02/03/2006 - 23:39h

Simples, direto e funcional...

Apenas uma pequena correção no exec_backup. A linha origalmente colocada:
#Compactando a pasta
tar -czvf /root/backup_/BKP`date +%d%m%y` /root/backup_/BACKUP_`date +%d%m%y`.tgz

Deve ser modificada a localização do ".tgz" para:
#Compactando a pasta
tar -czvf /root/backup_/BKP`date +%d%m%y`.tgz /root/backup_/BACKUP_`date +%d%m%y`

Era por isso que não funcionava para alguns...



[9] Comentário enviado por slaypher em 10/05/2007 - 23:56h

Olá,

Outro detalhe importante que faltou ressaltar é o chmod 755, seria melhor usar chmod 700, pois você deixa no script a senha do root do banco de dados mysql, então seria melhor só o root ter acesso ao script. Mas fora isso, excelente artigo!

[]'s

[10] Comentário enviado por comfaa em 03/05/2011 - 19:39h

tem como rodar dentro do PHP,
estou com esse probleminha pra achar uma solução.
o problema maior é que eu preciso fazer backup das procedures tmb

abraços

[11] Comentário enviado por wanderleihuttel em 03/05/2011 - 19:58h

Se você tiver permissão no servidor, é possível executar um shell script com a função system do PHP:
system('sudo /usr/scripts/backup_mysql.sh');

Abraço


Contribuir com comentário




Patrocínio

Site hospedado pelo provedor RedeHost.
Linux banner

Destaques

Artigos

Dicas

Tópicos

Top 10 do mês

Scripts