Automatizando backups do MySQL com MySQLDUMP

Share:


É comum no dia a dia do administrador de sistemas ou desenvolvedor implementar e automatizar rotinas de backups dos bancos de dados da produção, então fazer essa tarefa manualmente pode ser um tanto quanto trabalhosa como possivel de falha. Automatizar esses processos é bem simples, vamos ver como funciona. 

Crie um diretório para armazenar os backups do sistema

# mkdir /var/backups

Crie um diretório para armazenar os scripts 

#mkdir /var/scripts

Agora crie um arquivo chamado run.sh e cole o conteúdo a seguir:


#!/bin/sh
# mysqlBackup.sh

#SCRIPT DE BACKUP DE BASES MYSQL

#ESTA VARIÁVEL SERVE PARA IDENTIFICAR OS BACKUPS REALIZADOS FUTURAMENTE
DATA=`/bin/date +%Y%m%d`

# AQUI VOCÊ VAI DEFINIR O LOCAL E O NOME DO BACKUP, ALTERE COMO PREFERIR
# MAS MANTENHA O $DATA
NOME="/var/backups/backup-$DATA.sql"

# VARIÁVEIS DE CONEXÃO DO BANCO
# ALTERE CONFORME SUAS NECESSIDADES
HOST="localhost"
USER="root"
PASSWORD="12345"
DATABASE="teste"

# COMANDO DE DUMP DO BANCO
mysqldump -h $HOST -u $USER -p$PASSWORD $DATABASE > $NOME


Rode ele para testar e ver se está tudo ok:

#chmod +x run.sh
# ./run.sh
#mkdir /var/scripts
Rodando isso vamos dar um LS na pasta /var/backups pra ver se salvou

# ls -l /var/backups 

O resultado foi o seguinte: 



Note que foi criado o arquivo "backup-20150814.sql", então está tudo certo, ele está fazendo o DUMP e salvando no lugar correto com o nome correto. Agora vamos mover o arquivo para a pasta /var/scripts e criar um crontab para executá-lo todos os dias as 3 da manhã. 

# mv run.sh /var/scripts 

Abra a tabela do Crontab :
# crontab -e

Normalmente o editor de texto padrão do Cron é o VIM, então aperte "i" para entrar no modo de inserção e cole no final do arquivo as linhas: 

0 3 * * * /var/scripts/run.sh



Nesse cron criamos uma estrutura que faz com que o Linux rode o script run.sh toda 3 da manhã de todos os dias do mês. Caso não tenha entendido muito bem como funciona o crontab, escrevi um artigo bem legal mostrando como ele funciona. Você pode conferir aqui. 

Restaurando o Backup

Para restaurar o backup gerado é simples:

# mysql -u root -p NOMEDOBANCO < seubackup.sql
:)

Um comentário: