Backup Database MySQL Automatizado
Publicado por Thiago Henrique Lopes (última atualização em 21/02/2019)
[ Hits: 11.802 ]
Homepage: https://github.com/Th14go
Backup em shell script automatizado para banco mysql. Essencial para quem tem muitas databases para fazer backup.
---Script-Backup-Database-MySQL --Th14go--
Script para backup de várias databases MySQL do mesmo servidor, contém informações em todo seu escopo, o backup é executado utilizando o mysqldumb do próprio MySQL, após ocorrer o backup de todas as databases, é iniciado o processo de compactação. É gerado LOG de backup e compactação para auditoria de execução do script posteriormente, fique a vontade em dar dicas e melhorar o script.
Editar variáveis:
#Variáveis para SQL dos BCK
#Variáveis do MySQL#
#Databases#
git clone https://github.com/Th14go/script-bck-mysql
./script-bck-mysql
Rotina de Backup - Crontab
$ crontab -e (inicia tarefa com o agendador de tarefas crontab, em "root")
00 19 * * * /bck-bases-mysql.sh #Backup será executado todos os dias as 19:00hr
Para garantir reinicie o serviço do crontab:
# service crontab restart
#!/bin/sh
#Backup Databases MySQL C/ LOGS -- Criado por: Th14go
#GITHUB- https://github.com/Th14go/script-bck-mysql
DATA=`date +%Y-%m-%d-%H.%M`
#Local onde o arquivo de log sera armazenado.
SYNC_LOG=/var/log/bckmysql/bckmysql$DATA.log
#Variáveis para SQL dos BCK
BASEI="/mnt/backup/MySQL/BASEI-$DATA.sql"
BASEII="/mnt/backup/MySQL/BASEII-$DATA.sql"
BASEIII="/mnt/backup/MySQL/BASEIII-$DATA.sql"
BASEIV="/mnt/backup/MySQL/BASEIV-$DATA.sql"
BASEV="/mnt/backup/MySQL/BASEV-$DATA.sql"
#Variáveis do MySQL#
HOST="localhost"
USER="root"
PASSWORD="suasenha"
#DATABASES#
DATABASEI="BASEI"
DATABASEII="BASEII"
DATABASEIII="BASEIII"
DATABASEIV="BASEIV"
DATABASEV="BASEV"
#EXECUTANDO BACKUP DE DATABASEI#
echo "******************************" >> $SYNC_LOG
echo "Inicio do Backup Database BASEI" >> $SYNC_LOG
date >> $SYNC_LOG
mysqldump --routines --triggers -h $HOST -u $USER -p$PASSWORD $DATABASEI > $BASEI
echo "Fim do Backup da Database BASEI" >> $SYNC_LOG
date >> $SYNC_LOG
echo "******************************" >> $SYNC_LOG
echo "Inicio do Backup Database BASEII" >> $SYNC_LOG
date >> $SYNC_LOG
#EXECUTANDO BACKUP DE DATABASEII#
mysqldump --routines --triggers -h $HOST -u $USER -p$PASSWORD $DATABASEII > $BASEII
echo "Fim do Backup da Database BASEII" >> $SYNC_LOG
date >> $SYNC_LOG
echo "******************************" >> $SYNC_LOG
echo "Inicio do Backup Database BASEIII" >> $SYNC_LOG
date >> $SYNC_LOG
#EXECUTANDO BACKUP DE DATABASEIII#
mysqldump --routines --triggers -h $HOST -u $USER -p$PASSWORD $DATABASEII > $BASEIII
echo "Fim do Backup da Database BASSEIII" >> $SYNC_LOG
date >> $SYNC_LOG
echo "******************************" >> $SYNC_LOG
echo "Inicio do Backup Database BASEIV" >> $SYNC_LOG
date >> $SYNC_LOG
#EXECUTANDO BACKUP DE DATABASEIV#
mysqldump --routines --triggers -h $HOST -u $USER -p$PASSWORD $DATABASEIV > $BASEIV
echo "Fim do Backup da Database BASEIV" >> $SYNC_LOG
date >> $SYNC_LOG
echo "******************************" >> $SYNC_LOG
echo "Inicio do Backup Database BASEV" >> $SYNC_LOG
date >> $SYNC_LOG
#EXECUTANDO BACKUP DE DATABASEV#
mysqldump --routines --triggers -h $HOST -u $USER -p$PASSWORD $DATABASEV > $BASEV
echo "Fim do Backup da Database BASEV" >> $SYNC_LOG
date >> $SYNC_LOG
echo "******************************" >> $SYNC_LOG
#Compacta Databases Mysql#
echo "******************************" >> $SYNC_LOG
echo "Inicio da compactacao do Backup" >> $SYNC_LOG
date >> $SYNC_LOG
#echo "******************************" >> $SYNC_LOG
cd /mnt/backup/MySQL/
tar -cvzf DATABASES-$DATA.tar.gz *sql
echo "******************************" >> $SYNC_LOG
echo "Fim da compactacao" >> $SYNC_LOG
date >> $SYNC_LOG
echo "******************************" >> $SYNC_LOG
#Deleta Arquivos SQL Databases#
rm -rvf /mnt/backup/MySQL/*.sql
#Sincroniza com diretorio do servidor em diretorio remoto os LOGS#
rsync -Cravp /var/log/bckmysql /mnt/backup/LOG/
#Apagando-Backup-com+de10dias
echo "***********INICIO REMOÇÃO REMOTA***************">>$SYNC_LOG
date >> $SYNC_LOG
find /mnt/backup/MySQL -mtime +10 -fprint /mnt/backup/LOG/logdelete`date +%F`.txt -exec rm -rf {} \; >>$SYNC_LOG
date >> $SYNC_LOG
echo "**********FIM REMOÇÃO REMOTA*******************">>$SYNC_LOG
rotate.sh - Rotaciona arquivos de acordo com a data
Backups automáticos de rádios Intelbras APC5
Backup de Roteadores e Switches
Nenhum comentário foi encontrado.
Cirurgia para acelerar o openSUSE em HD externo via USB
Void Server como Domain Control
Modo Simples de Baixar e Usar o bash-completion
Monitorando o Preço do Bitcoin ou sua Cripto Favorita em Tempo Real com um Widget Flutuante
Como impedir exclusão de arquivos por outros usuários no (Linux)
Cirurgia no Linux Mint em HD Externo via USB
Anúncio do meu script de Pós-Instalação do Ubuntu
Duas Pasta Pessoal Aparecendo no Ubuntu 24.04.3 LTS (4)
Alguém pode me indicar um designer freelancer? [RESOLVIDO] (4)
Alguém executou um rm e quase mata a Pixar! (1)
Por que passar nas disciplinas da faculdade é ruim e ser reprovado é b... (6)









