Last active
December 16, 2020 20:33
-
-
Save aristidesneto/dee35d878fac3d031d218630f40ea925 to your computer and use it in GitHub Desktop.
Backup de banco de dados Mysql
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
#!/bin/bash | |
# | |
# Autor: Aristides Neto | |
# Email: [email protected] | |
# | |
# 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 | |
# Para backupear procedures e functions foi adicionado o --routines | |
mysqldump --routines -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 {} \; | |
Boa tarde Aristides, top o script, porém se tiver triggers e procedures será ignorado no backup, adiciona a regra , --routines --triggers
Tudo certo Thiago?!
Para backupear as procedures e functions, faz se necessário o parâmetro --routines, para as triggers, não é necessário --triggers pois essa opção já é padrão do Mysql.
Obrigado pela contribuição... vou atualizar o script com essa informação.
Tudo na paz, que isto Aristides, é o costume de passar o ---triggers rs, bom saber que é padrão :). Uma outra opção legal seria acrescentar -alv para mostrar junto ao log as tables percorridas e se foi tudo certo no backup.
Opa tudo certo Thiago?! Agradeço por mais uma dica!
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Boa tarde Aristides, top o script, porém se tiver triggers e procedures será ignorado no backup, adiciona a regra , --routines --triggers