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.493 ]
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 Criar/Modificar Usuarios No Ldap + Samba
Redundância de dois links de internet
UNIX - Alerta de espaço em disco via e-mail
Pós-instalação do Ubuntu 18.04 LTS (codecs, ferramentas do sistema e dev.)
Nenhum comentário foi encontrado.
Como extrair chaves TOTP 2FA a partir de QRCODE (Google Authenticator)
Linux em 2025: Segurança prática para o usuário
Desktop Linux em alta: novos apps, distros e privacidade marcam o sábado
IA chega ao desktop e impulsiona produtividade no mundo Linux
Novos apps de produtividade, avanços em IA e distros em ebulição agitam o universo Linux
Como instalar o repositório do DBeaver no Ubuntu
Como instalar o Plex Media Server no Ubuntu
Digitando underscore com "shift" + "barra de espaços"
Como ativar a lixeira e recuperar aquivos deletados em um servidor Linux
Como mudar o nome de dispositivos Bluetooth via linha de comando
Problemas com Driver NVIDIA (1)
Programa fora de escala na tela do pc (21)
Fedora KDE plasma 42 X Módulo de segurança BB (Warsaw-2) (1)









