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.542 ]
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
POSTFIX AUTOMÁTICO COM MYSQL E IPTABLES - BLOQUEAR IP
Configurando CISCO por Shell Script
Um super limpador do sistema KDu
Instalando a última versão estável do Eclipse com uma única linha
Nenhum comentário foi encontrado.
Como atualizar sua versão estável do Debian
Cirurgia para acelerar o openSUSE em HD externo via USB
Void Server como Domain Control
Script de montagem de chroot automatica
Atualizar Linux Mint 22.2 para 22.3 beta
Jogar games da Battle.net no Linux com Faugus Launcher
Como fazer a Instalação de aplicativos para acesso remoto ao Linux
Por que passar nas disciplinas da faculdade é ruim e ser reprovado é b... (7)
De volta para o futuro - ou melhor, para o presente (parte 2) (0)









