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.509 ]
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
Backup para CD-R/RW e DVD+/- R/RW
zsh: Validar IPv4 utilizando PCRE
Ligar máquinas virtuais Xen seguindo ordem de criação
Nenhum comentário foi encontrado.
Monitorando o Preço do Bitcoin ou sua Cripto Favorita em Tempo Real com um Widget Flutuante
IA Turbina o Desktop Linux enquanto distros renovam forças
Como extrair chaves TOTP 2FA a partir de QRCODE (Google Authenticator)
Como realizar um ataque de força bruta para desobrir senhas?
Como usar Gpaste no ambiente Cinnamon
Atualizando o Fedora 42 para 43
Erro ao instalar programa, "você tem pacotes retidos quebrados&qu... (12)
VOL já não é mais como antes? (15)
Como personalizar o lxde? [RESOLVIDO] (5)
Flatpaks não funcionam após atualizar pelo Gerenciador de Atualizações... (3)









