backup diferencial remoto
Publicado por Fábio de Souza (última atualização em 29/12/2011)
[ Hits: 6.276 ]
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
Script para realizar atualização automática do flash player
Baixar aúdios em formato mp3 através de script com o youtube
Nenhum comentário foi encontrado.
Melhorando o tempo de boot do Fedora e outras distribuições
Como instalar as extensões Dash To Dock e Hide Top Bar no Gnome 45/46
E a guerra contra bots continua
Tradução do artigo do filósofo Gottfried Wilhelm Leibniz sobre o sistema binário
Conheça o firewall OpenGFW, uma implementação do (Great Firewall of China).
Instalando o FreeOffice no LMDE 6
Anki: Remover Tags de Estilo HTML de Todas as Cartas
Colocando uma opção de redimensionamento de imagem no menu de contexto do KDE
Não consigo acessar os modos de desempenho (1)
Criar um script para testar pen drive (5)
Problema com alias usando locate (4)
[Shell Script] Script para desinstalar pacotes desnecessários no OpenSuse
[Shell Script] Script para criar certificados de forma automatizada no OpenVpn
[Shell Script] Conversor de vídeo com opção de legenda
[C/C++] BRT - Bulk Renaming Tool
[Shell Script] Criação de Usuarios , Grupo e instalação do servidor de arquivos samba