Backup dinâmico de banco de dados MySQL
Publicado por Alessandro Librelato (última atualização em 11/07/2016)
[ Hits: 4.959 ]
Olá,
Esse é um script para fazer backup dos banco de dados do MySQL de forma dinâmica. Mas o que isso quer dizer? Quer dizer que não é especificado a lista de banco de dados que deve ser feito backup, é pego uma lista de todos os bancos dinamicamente, menos os padrões, e feito um backup de forma individual.
Enjoy ;)
#!/bin/bash ############################################ ## Por Alessandro Librelato em 08.04.2013 ## ############################################ ## Versao 1.0 ## ################ #set -x ########################### ## VARIAVEIS DE AMBIENTE ## ########################### data=`date "+%d-%m-%Y"` # Data de execucao do script # destino=/tmp # para onde sera mandado o backup # log=/tmp/backup.log # onde sera criado o log # mailTo="email@dominio \ -c email@dominio" # email com copia # listaBancos=/tmp/bancos.txt # Arquivos onde eh criada a lista com os bancos # hostName=`hostname` # Captura o nome do host # ## Configuracao Servidor MySQL ## mysqlUser="usuario" # usuario do banco # mysqlPass="senha" # senha do banco # mysqlHost="localhost" # host onde esta o banco # mysqlPort="3306" # porta de conexao do host remoto # ############ ## INICIO ## ############ # Verifica se o arquivo com a lista dos bancos ja existe, se existe deleta ele # if [ -e ${listaBancos} ]; then rm -f ${listaBancos} fi # Deleta todos backups antigos # rm -f ${destino}/*.gz # Listando todos os bancos que devem ser feito backup e armazena a lista no arquivo de lista de bancos, com excessao dos bancos padroes do MySql # echo "show databases;" | mysql --user=${mysqlUser} --password=${mysqlPass} --host=${mysqlHost} | egrep -v 'Database|mysql|information_schema|performance_schema|sys' > ${listaBancos} # verifica se o arquivo com a lista dos bancos foi criado com sucesso # if [ -e ${listaBancos} ]; then # Le o arquivo gerado com todas as bases do Servidor para a variavel bancos # bancos=( `cat "${listaBancos}"` ) # Efetua o backup com mysqldump e compacta as bases lendo a lista de bancos linha a linha # for banco in "${bancos[@]}"; do mysqldump --user=${mysqlUser} --password=${mysqlPass} --host=${mysqlHost} ${banco} | gzip > ${destino}/${banco}.${data}.sql.gz done # Escreve os resultados no log # echo "Final do Backup " >> ${log} ; echo ${data} >> ${log} ; echo "Volume copiado para Backup" >> ${log} ; echo "" >> ${log} # Verifica o tamanho dos bancos feito backup e escreve no log # for banco in "${bancos[@]}"; do echo `du -sh ${destino}/$(echo ${banco}.${data}).sql.gz` >> ${log} done echo "==============================================" >> ${log}; echo "" >> ${log} ; echo "" >> ${log} # Removendo os arquivos desnecessários # rm -f ${listaBancos} # Envia e-mail de sucesso do Backup # cat $log | mail -s "SQL centralizado [BACKUP REALIZADO COM SUCESSO] para $hostName - `date`" $mailTo exit 0 else # Envia e-mail de erro do Backup # echo "" >> ${log} ; echo "O arqquivo com a lista dos bancos nao foi criada corretamente, por favor verifique" >> ${log} ; echo "" >> ${log} # cat $log | mail -s "SQL centralizado [ERRO, BACKUP NÃO REALIZADO] para $hostName - `date`" $mailTo exit 0 fi
Script de backup dos hosts do Zabbix
Backup da pasta de usuário em sistemas GNU/Linux sem copiar os arquivos ocultos
Backup de Roteadores e Switches
MySQL - Script para backup automatizado
Nenhum comentário foi encontrado.
Como gerar qualquer emoji ou símbolo unicode a partir do seu teclado
Instalar e Configurar o Slackware Linux em 2025
Como configurar os repositórios do apt no Debian 12 em 2025
Passkeys: A Evolução da Autenticação Digital
Instalação de distro Linux em computadores, netbooks, etc, em rede com o Clonezilla
Configurando o Conky para iniciar corretamente no sistema
3 configurações básicas que podem melhorar muito a sua edição pelo editor nano
Como colorir os logs do terminal com ccze
Instalação Microsoft Edge no Linux Mint 22
Como configurar posicionamento e movimento de janelas no Lubuntu (Openbox) com atalhos de teclado
firefox nao guarda meus logins nos sites (1)
Instalar debian testing (13) "por cima" do debian 12 (2)
Erro de segmentação «Segmentation fault (core dumped)» ao retornar obj... (1)