backup diferencial remoto
Publicado por Fábio de Souza (última atualização em 29/12/2011)
[ Hits: 6.388 ]
Homepage: www.quebec-linux.blogspot.com.br
Olá, fiz essa backup para meu superior, trata-se de um backup da maquina local para um remoto através de ssh c/ chave publica.
Ele faz o backup completo na segunda e na sexta, no restante dos dias ele faz um diferencial.
Para usá-lo é só modificar algumas variáveis como IP de Destino, diretório local e diretório remoto, colocá-lo no CRON ou rodá-lo manualmente mesmo.
Espero que seja útil.
#!/bin/bash #ATENCAO: LEIA OS ITENS ABAIXOS E TODOS COMENTÁRIOS PARA PODER ENTENDER COMO É FEITO O BACKUP! #Becape Full de Segunda e Sexta-feira c/ Diferencial na Terça, Quarta e Quinta. #Para conectar no servidor deve-se utilizar a chave publica do admin desta maquina, só assim será possível mover o backup para o destino remoto. #incluí-lo no cron ou rodá-lo manualmente todos dias da semana. #Dia em números para entrada do case e escrita de log (Nao mudar!) DIA="$(date '+%w')" #Diretorio do programa Becape BCPHOME="/root/becape" #Email do admin MAILTO="admin-backup@exemplo.com.br" #Diretorio a ser "backupeado" SRC="/home" #IP de destino (scp/ssh) IPDEST="192.168.1.3" #Diretorio de destino onde sera movido o backup DSTDIR="/root/becape" #Script p/ fazer backup full FULL="tar -cvf $BCPHOME/becape-full.tar $SRC" bkp() { case $DIA in 1 )echo -e "\nBecape Executado: `date`\n" ; $FULL ; scp $BCPHOME/becape-full.tar $IPDEST:$DSTDIR/segundaa/ ;; 2 )echo -e "\nBecape Executado: `date`\n" ; find $SRC -type f -newer $BCPHOME/becape-full.tar -exec cp -v {} $BCPHOME/tercaa/ \; ; scp $BCPHOME/tercaa/* $IPDEST:$DSTDIR/tercaa/ ;; 3 )echo -e "\nBecape Executado: `date`\n" ; find $SRC -type f -newer $BCPHOME/becape-full.tar -exec cp -v {} $BCPHOME/quartaa/ \; ; scp $BCPHOME/quartaa/* $IPDEST:$DSTDIR/quartaa/ ;; 4 )echo -e "\nBecape Executado: `date`\n" ; find $SRC -type f -newer $BCPHOME/becape-full.tar -exec cp -v {} $BCPHOME/quintaa/ \; ; scp $BCPHOME/quintaa/* $IPDEST:$DSTDIR/quintaa/ ;; 5 )echo -e "\nBecape Executado: `date`\n" ; $FULL ; scp $BCPHOME/becape-full.tar $IPDEST:$DSTDIR/sextaa/ ;; *) mail -s "becape.sh: provavel erro na data do sistema" $MAILTO ;; esac } dir () { #Verifica se existe diretorio do programa becape e o cria. test -d $BCPHOME || mkdir $BCPHOME || echo -e "\nImpossivel criar diretorio local $BCPHOME!\n" test -d $BCPHOME/segundaa || mkdir $BCPHOME/segundaa || echo -e "\nImpossivel criar diretorio local $BCPHOME/segundaa!\n" test -d $BCPHOME/tercaa || mkdir $BCPHOME/tercaa || echo -e "\nImpossivel criar diretorio local $BCPHOME/tercaa!\n" test -d $BCPHOME/quartaa || mkdir $BCPHOME/quartaa || echo -e "\nImpossivel criar diretorio local $BCPHOME/quartaa!\n" test -d $BCPHOME/quintaa || mkdir $BCPHOME/quintaa || echo -e "\nImpossivel criar diretorio local $BCPHOME/quintaa!\n" test -d $BCPHOME/sextaa || mkdir $BCPHOME/sextaa || echo -e "\nImpossivel criar diretorio local $BCPHOME/sextaa!\n" test -d $BCPHOME/log || mkdir $BCPHOME/log || echo -e "\nImpossivel criar diretorio local $BCPHOME/log!\n" #Verifica se existe diretorios remotos para armazenar os backups e o cria. ssh $IPDEST test -d $DSTDIR || ssh $IPDEST mkdir $DSTDIR || echo -e "\nImpossivel criar diretorio remoto $DSTDIR!\n" ssh $IPDEST test -d $DSTDIR/segundaa || ssh $IPDEST mkdir $DSTDIR/segundaa || echo -e "\nImpossivel criar diretorio remoto $DSTDIR/segundaa!\n" ssh $IPDEST test -d $DSTDIR/tercaa || ssh $IPDEST mkdir $DSTDIR/tercaa || echo -e "\nImpossivel criar diretorio remoto $DSTDIR/tercaa!\n" ssh $IPDEST test -d $DSTDIR/quartaa || ssh $IPDEST mkdir $DSTDIR/quartaa || echo -e "\nImpossivel criar diretorio remoto $DSTDIR/quartaa!\n" ssh $IPDEST test -d $DSTDIR/quintaa || ssh $IPDEST mkdir $DSTDIR/quintaa || echo -e "\nImpossivel criar diretorio remoto $DSTDIR/quintaa!\n" ssh $IPDEST test -d $DSTDIR/sextaa || ssh $IPDEST mkdir $DSTDIR/sextaa || echo -e "\nImpossivel criar diretorio remoto $DSTDIR/sextaa!\n" } #executa funcao dir com as saidas de erro em arquivo de log dir 2>> $BCPHOME/log/$DIA.becape.err.log #executa funcao com as saidas, normal e de erro, em seus respectivos arquivos de log bkp > $BCPHOME/log/$DIA.becape.log 2> $BCPHOME/log/$DIA.becape.err.log echo -e ".\n...Backup finalizado, verifique os logs para confirmar o sucesso em:\t $BCPHOME/log/$DIA.becape.err.log\n" W=0 while [ $W == 0 ] do echo "" read -n 1 -p "Deseja deletar o backup temporario deixados neste host? s(recomendável) ou n" SN case $SN in s ) echo "" ; rm -rfv /root/becape/*aa/ ; W=1 ;; n ) echo -e "\narquivos de backup mantidos em "$BCPHOME/..."" ; W=1;; ? ) echo -e "\ndesculpe, utilize s ou n, somente!"; W=0 ;; esac done #Se quiser enviar o resultado descomente esta opção. mail -s "becape.sh results!" -a $BCPHOME/log/$DIA.becape.log -a $BCPHOME/log/$DIA.becape.err.log $MAILTO << /dev/null
Limpando pacotes desnecessários com apt-get
Script Simples para informações do Sistema
Nenhum comentário foi encontrado.
Compartilhando a tela do Computador no Celular via Deskreen
Como Configurar um Túnel SSH Reverso para Acessar Sua Máquina Local a Partir de uma Máquina Remota
Configuração para desligamento automatizado de Computadores em um Ambiente Comercial
Efeito "livro" em arquivos PDF
Como resolver o erro no CUPS: Unable to get list of printer drivers
Flatpak: remover runtimes não usados e pacotes
Mudar o gerenciador de login (GDM para SDDM e vice-versa) - parte 2
[Python] Automação de scan de vulnerabilidades
[Python] Script para analise de superficie de ataque
[Shell Script] Novo script para redimensionar, rotacionar, converter e espelhar arquivos de imagem
[Shell Script] Iniciador de DOOM (DSDA-DOOM, Doom Retro ou Woof!)
[Shell Script] Script para adicionar bordas às imagens de uma pasta