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.340 ]
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
Script para criação de pacotes auto extrator.
Atualização automática de data e hora com ntpdate
Backup com data no nome do arquivo
Script - Realizando relatório do servidor
Nenhum comentário foi encontrado.
Enviar mensagem ao usuário trabalhando com as opções do php.ini
Meu Fork do Plugin de Integração do CVS para o KDevelop
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
Compartilhamento de Rede com samba em modo Público/Anônimo de forma simples, rápido e fácil
Cups: Mapear/listar todas as impressoras de outro Servidor CUPS de forma rápida e fácil
Criando uma VPC na AWS via CLI
Tem como instalar o gerenciador AMD Adrenalin no Ubuntu 24.04? (16)
Arch Linux - Guia para Iniciantes (2)
Problemas ao instalar o PHP (11)
Tenho dois Link's ( IP VÁLIDOS ), estou tentando fazer o failover... (0)