Backup Database MySQL Automatizado
Publicado por Thiago Henrique Lopes (última atualização em 21/02/2019)
[ Hits: 11.184 ]
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
Backup e envio do arquivo + md5sum para o FTP da escolha do usuário
Criptografando arquivos para enviar pra sua nuvem
Enviando e-mail localmente após o backup para monitoramento
Nenhum comentário foi encontrado.
Compartilhando a tela do Computador no Celular via Deskreen
Como Configurar um Túnel SSH Reverso para Acessar Sua Máquina Local a Partir de uma Máquina Remota
Configuração para desligamento automatizado de Computadores em um Ambiente Comercial
Efeito "livro" em arquivos PDF
Como resolver o erro no CUPS: Unable to get list of printer drivers
Flatpak: remover runtimes não usados e pacotes
Mudar o gerenciador de login (GDM para SDDM e vice-versa) - parte 2
Estou com sede em aprender sobre o nosso querido Linux. (1)
big linux sem audio como resolver (2)
Como faz para dar um update-grub por shell script [RESOLVIDO] (3)
[Python] Automação de scan de vulnerabilidades
[Python] Script para analise de superficie de ataque
[Shell Script] Novo script para redimensionar, rotacionar, converter e espelhar arquivos de imagem
[Shell Script] Iniciador de DOOM (DSDA-DOOM, Doom Retro ou Woof!)
[Shell Script] Script para adicionar bordas às imagens de uma pasta