Olá Amigos.
Recentemente tive que implementar o backup diário de uma base de dados MySQL e decidi compartilhar o script para execução desta atividade.
A implementação é simples, após criado o script dentro da pasta do sistema, o mesmo foi adicionado na Crontab para rodar todos os dias a noite.
Obs: Abaixo deve ser substituído o nome da base, usuario e senha.
Script:
#!/bin/bash #################### SCRIPT PARA BACKUP MYSQL #################### # Definindo parametros do sistema echo " -- Definindo parametros do sistema ..." DATE=`date +%Y-%m-%d` MYSQLDUMP=/usr/bin/mysqldump BACKUP_DIR=/backup BACKUP_NAME=mysql-$DATE.sql BACKUP_TAR=mysql-$DATE.tar #Gerando arquivo sql echo " -- Gerando Backup da base de dados em $BACKUP_DIR/$BACKUP_NAME ..." $MYSQLDUMP NOMDABASE-u USUARIO -SENHA > $BACKUP_DIR/$BACKUP_NAME # Compactando arquivo em tar echo " -- Compactando arquivo em tar ..." tar -cf $BACKUP_DIR/$BACKUP_TAR -C $BACKUP_DIR $BACKUP_NAME # Excluindo arquivos desnecessarios echo " -- Excluindo arquivos desnecessarios ..." rm -rf $BACKUP_DIR/$BACKUP_NAME cd $BACKUP_DIR || exit 1 for file in mysql*tar do [ $file = $BACKUP_TAR ] && continue gzip $file done
Agendamento das execuções (crontab)
Para editar o crontab do root, com o editor padrão do sistema:
$sudo crontab -e
O comando abaixo faz crontab executar o script /opt/scripts/backup_mysql.sh todos os dias da semana às 05 a.m.
00 05 * * * /opt/scripts/backup_mysql.sh
Bom amigos, qualquer problema ou duvida fico a disposição.