Pular para o conteúdo

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.
Perfil removido removido
Hits: 42.332 Categoria: Linux Subcategoria: Configuração
  • Indicar
  • Impressora
  • Denunciar

Parte 2: 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
####################################
   1. Requisitos
   2. Configurando
   3. Executando a rotina
   4. Restaurando o backup
   5. Conclusão

Placas PCI x ISA-PNP

Porque se aventurar no Linux (parte 2) - Instalei, e agora?

Block Hosts: Bloqueando ataques de força-bruta (brute force) em FTP, SSH e outros

Comportamento das tecnologias WEB e seus meios de acesso

Resumo LPI 102: Tópico 108 - Serviços Essenciais do Sistema

Squid com WCCP

VPN com servidor e cliente rodando em Linux

Driver ATI (proprietário) no kernel 2.6.29 e posteriores

Conexão com chaves assimétricas sem uso de senha em servidor sshd

Configuração de Indentação no Vim - Tabs e Espaços

#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

Entre na sua conta para comentar.