Backup diario rotativo MySQL + Backup semanal mantendo uma cópia local e remota
Publicado por Ailson Ferreira Guerra (última atualização em 09/07/2011)
[ Hits: 9.304 ]
Homepage:
Este Script foi criado Inicialmente para realizar o Backup no Ubuntu Server da tabela do cacti no Mysql.
Porém ele pode ser utilizado para realizar o Backup de qualquer tabela do Banco Mysql.
O script cria um Backup da tabela diariamente (de Segunda à Sábado) que é sobrescrito na semana seguinte com o NomeDaTablea+DiaSemana e cria também um Backup semanal, no caso no Domingo com o nome da tabela, dia do mês, mês, ano e dia da semana.
Após ser gerado é mantido um Backup Local e é enviado uma copia para uma pasta compartilhada em um servidor Windows.
Para utiliza-lo, abaixe o arquivo e ajuste as variáveis de acordo com a realidade do seu ambiente (Com o intuito de facilitar o entendimento todo o código está comentado).
De permissão de execução
#chmod +x MySql_Backup.sh
Instale o SMBFS para poder realizar a montagem da partição Windows no servidor Linux
#apt-get install smbfs
E por último faça o agendamento no cron.
# contrab -e
Insira a linha abaixo para a execução do script todos os dias as 18 horas.
0 18 * * * DiretórioOndeEstáOScript/MySql_Backup.sh
#!/bin/bash #Autor: Ailson Ferreira Guerra #Instale o smbfs clear echo '####################################' echo '# Ailson Ferreira Guerra #' echo '# Script de Backup para MySQL v1.0 #' echo '# 2011.05.05 #' echo '####################################' echo #variáveis do MySql HOST="" #Local onde esa instalado o Banco USER="" #Usuário do Banco PASSWORD="" #Senha do Banco DATABASE="" #nome da tabela que será feito o backup # variáveis do script LOCAL= #Onde será criado o BKP LOCAL2= #Onde será Montado SERVWIN= #Caminho onde será guardado os dados USERLDAP= #Usuario do AD SENHALDP= #Senha do Usuário do AD DATA=`/bin/date +%a%d%m%Y` #Usar a data do sistema Dia + mês + ano NOME="$LOCAL/$DATABASE-$DATA.sql" #Caminho onde será salvo DATA2=`/bin/date +%a` #Usar a data do sistema. Dia da Semana Abreviado NOME2="$LOCAL/$DATABASE-$DATA2.sql" #Caminho onde será salvo # Checando se o diretório existe. Se não, criando um. function diretoriobkp() { if [ -e $LOCAL ]; then echo -e "\e[31;40;1mDiretório de BKP ok...\e[m" else echo -e "\e[31;40;1mCriando diretório ...\e[m" mkdir -p $LOCAL fi } # Checando se o diretório existe. Se não, criando um. function diretoriomapeamento() { if [ -e $LOCAL2 ]; then echo -e "\e[31;40;1mDiretório de Mapeamento ok...\e[m" else echo -e "\e[31;40;1mCriando diretório ...\e[m" mkdir -p $LOCAL2 fi } #Gera dois Backup, sendo un rotativo ( o que utiliza o nome da semana abreviado) e outro será enviado para #uma pasta compartoilhada do Windows function dumpdb() { #verifica se é Domingo if [ $DATA2 == 'Dom' ]; then echo -e "\e[31;40;1mFazendo o Backup de dados da tabela \e[m""\e[35;20;1m$DATABASE\e[m""\e[31;40;1m...\e[m" mysqldump -h $HOST -u $USER -p$PASSWORD $DATABASE | gzip -c9 > $NOME.gz else echo -e "\e[31;40;1mFazendo o Backup de dados da tabela \e[m""\e[35;20;1m$DATABASE\e[m""\e[31;40;1m...\e[m" mysqldump -h $HOST -u $USER -p$PASSWORD $DATABASE | gzip -c9 > $NOME2.gz fi } #Monta a partição Windows #Lembre se criar no /mnt uma pasta onde será montado o mapeamento function monta(){ mount -t cifs -o username=$USERLDAP,password=$SENHALDP $SERVWIN $LOCAL2 } #Copia os arquivos do Backup para a pasta Windows Mapeada function copia(){ if [ $DATA2 == 'Dom' ]; then cp $NOME.gz $LOCAL2 else cp $NOME2.gz $LOCAL2 fi } # Desmonta o mapeamento function desmonta(){ umount $LOCAL2 } main() { echo -e "\e[31;40;1mIniciando Backup do Mysql\e[m" diretoriobkp diretoriomapeamento dumpdb monta copia desmonta } main
Instalação e configuração do celular Nokia 6670 no Ubuntu 8.10
Script para criar certificados de forma automatizada no OpenVpn
Backup e PHP conbinação explosiva.
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
SysAdmin ou DevOps: Qual curso inicial pra essa área? (0)
Melhores Práticas de Nomenclatura: Pastas, Arquivos e Código (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