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.200 ]
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
Algoritmo para calcular notas com array
Script que identifica na rede a existência de duplicidades de IPs e MACs que utilizam mais de um IP
Redimensionar e fazer upload de imagens
Máquina Virtual no Linux KDu4 ou outras distros / remasters
Nenhum comentário foi encontrado.
Melhorando o tempo de boot do Fedora e outras distribuições
Como instalar as extensões Dash To Dock e Hide Top Bar no Gnome 45/46
E a guerra contra bots continua
Tradução do artigo do filósofo Gottfried Wilhelm Leibniz sobre o sistema binário
Conheça o firewall OpenGFW, uma implementação do (Great Firewall of China).
Instalando o FreeOffice no LMDE 6
Anki: Remover Tags de Estilo HTML de Todas as Cartas
Colocando uma opção de redimensionamento de imagem no menu de contexto do KDE
Terminal não funciona [RESOLVIDO] (8)
material de assembly x64 [RESOLVIDO] (4)
Problema com alias usando locate (6)
Como adicionar módulo de saúde da bateria dos notebooks Acer ao kernel... (20)
Alguém pode me ajudar porfavor como executar comandos ao iniciar no i3... (1)
[Shell Script] Script para desinstalar pacotes desnecessários no OpenSuse
[Shell Script] Script para criar certificados de forma automatizada no OpenVpn
[Shell Script] Conversor de vídeo com opção de legenda
[C/C++] BRT - Bulk Renaming Tool
[Shell Script] Criação de Usuarios , Grupo e instalação do servidor de arquivos samba