Skip to content

Instantly share code, notes, and snippets.

Embed
What would you like to do?
Backup de banco de dados Mysql
#!/bin/bash
#
# Autor: Aristides Neto
# Email: contato@aristidesneto.com.br
#
# Data: 09/06/2019
#
# Realiza o backup de bancos de dados MySQL
#
# Define usuario e senha do banco
USER='root'
PASS='root'
# Datas
DIA=`date +%d`
MES=`date +%m`
ANO=`date +%Y`
DATA_ATUAL=`date +%Y-%m-%d-%H-%M`
# Data de Inicio do Backup
DATA_INICIO=`date +%d/%m/%Y-%H:%M:%S`
# Caminho do arquivo de log
LOG_DIR=/var/log/backup
LOG=$LOG_DIR/backup_db_$ANO$MES$DIA.log
# Diretorio onde serão salvos os backups
DIR_BK=/var/backups/database
# Lista dos bancos de dados que serão realizados o backup
DATABASES=(banco01 banco02)
# Verifica se existe o diretorio para armazenar os logs
if [ ! -d $LOG_DIR ]; then
mkdir $LOG_DIR
fi
# Verifica se existe o diretorio para o backup
if [ ! -d $DIR_BK ]; then
mkdir -p $DIR_BK
fi
# Inicio do backup
echo "MYSQLDUMP Iniciado em $DATA_INICIO" >> $LOG
# Loop para backupear todos os bancos
for db in "${DATABASES[@]}"; do
# Mysql DUMP
mysqldump -u$USER -p$PASS $db > $DIR_BK/$db'_'$DATA_ATUAL.sql
echo "Realizando backup do banco ...............[ $db ]" >> $LOG
# Compacta o arquivo sql em BZ2
bzip2 $DIR_BK/$db'_'$DATA_ATUAL.sql
done
DATA_FINAL=`date +%d/%m/%Y-%H:%M:%S`
echo "MYSQLDUMP Finalizado em $DATA_FINAL" >> $LOG
# Remove arquivos de backups antigos - 5 dias
find $DIR_BK -type f -mtime +5 -exec rm -rf {} \;
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
You can’t perform that action at this time.