Backup Database MySQL Automatizado
Publicado por Thiago Henrique Lopes (última atualização em 21/02/2019)
[ Hits: 11.548 ]
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
Script de Back Up, com limpeza de back ups antigos e e-mail com logs
Lisa - sistema de backup com rsync
Backups de servidor CentOS com cPanel/WHM para servidor VPS Windows Server 2008
sync_local - backup/restauração local
Nenhum coment�rio foi encontrado.
Aprenda a Gerenciar Permissões de Arquivos no Linux
Como transformar um áudio em vídeo com efeito de forma de onda (wave form)
Como aprovar Pull Requests em seu repositório Github via linha de comando
Visualizar arquivos em formato markdown (ex.: README.md) pelo terminal
Dando - teoricamente - um gás no Gnome-Shell do Arch Linux
Como instalar o Google Cloud CLI no Ubuntu/Debian
Mantenha seu Sistema Leve e Rápido com a Limpeza do APT!
Procurando vídeos de YouTube pelo terminal e assistindo via mpv (2025)
Gestão de Ambiente em uma rede Linux (2)
Ajuda Pra Melhoria do NFTABLES. (7)
Zorin OS - Virtual Box não consigo abrir maquinas virtuais (4)