Backup dinâmico de banco de dados MySQL
Publicado por Alessandro Librelato (última atualização em 11/07/2016)
[ Hits: 4.875 ]
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
rsyncdev-pt_BR_v6.sh - Um baixador automático de ISOs de Sabayon Linux, versão 6
DriveTool.sh: um script para cópia rápida e segura de arquivos para unidades flash USB
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
Como renomear arquivos de letras maiúsculas para minúsculas
Imprimindo no formato livreto no Linux
Vim - incrementando números em substituição
Efeito "livro" em arquivos PDF
Como resolver o erro no CUPS: Unable to get list of printer drivers
Não to conseguindo resolver este problemas ao instalar o playonelinux (1)
Excluir banco de dados no xampp (1)
[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