Script para automatizar backup MySQL

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.

 

Continue Reading