É 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
:)
Valeu Mozão!!!
ResponderExcluir