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.430 ]
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 checagem de Ponto de Acesso.
Fazendo backup de uma pasta em arquivos separados
POSTFIX AUTOMÁTICO COM MYSQL E IPTABLES - FILTRO PARA CMAMAR O CLAMAV DIRETAMENTE DO POSTFIX
Ligar máquinas virtuais Xen seguindo ordem de criação
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)
Sinto uma leve lentidão ao arrastar, miniminizar e restauras as janela... (0)
Zorin OS - Virtual Box não consigo abrir maquinas virtuais (6)
Iinstalar o Scanner Kodak i940 no Linux Mint 19/20? (3)