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: 40.341 ]

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

Instalando o Slackware sem sofrimento (parte 2)

Automatic ACL Blocking List - Sistema automático de listas de bloqueio de ACLs

Solução de backup para servidores Windows, Linux & BSD’s

Interagindo com servidores HTTP com Python

Gerência e criação de módulos do kernel

Leitura recomendada

VPN Site-to-Site Openswan x ASA (Cisco)

Bodhi Linux com o belíssimo Enlightnment

Ubuntu 7.10 "levinho" para PCs antigos

Instalando o modem Pctel PCI no Conectiva 10

Instalando e configurando o Apache, PHP e MySQL no Slackware 10.1

  
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