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.439 ]
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
LeTRA - cálculo de valores do arquivo de venda do PDV
Find em arquivos compactados (grep em arquivos tgz)
Script de backup para fita DAT
Redundância de dois links de internet
Nenhum coment�rio foi encontrado.
Atualizando o Passado: Linux no Lenovo G460 em 2025
aaPanel - Um Painel de Hospedagem Gratuito e Poderoso
O macete do Warsaw no Linux Mint e cia
Olha que Conky "bunitinhu" pra usar no seu sistema
Git config não aplica configurações
O que você quer para sua vida ao usar o Linux?
Visualizar arquivos em formato markdown (ex.: README.md) pelo terminal
Problemas ao Boot do Windows para Ubunto (0)
GT 420, distros com repositórios aparentemente nulos, alguma recomenda... (1)