backup diferencial remoto
Publicado por Fábio de Souza (última atualização em 29/12/2011)
[ Hits: 6.672 ]
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
Verifica se quem executa é root
Adicionar usuários para serem autenticados pelo squid
Squid: configure com opções avançadas
Relógio em posições aleatórias
Nenhum comentário foi encontrado.
IA Turbina o Desktop Linux enquanto distros renovam forças
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
Atualizando o Fedora 42 para 43
Como saber se o seu e-mail já teve a senha vazada?
Como descobrir se a sua senha já foi vazada na internet?
VOL já não é mais como antes? (6)
É normal não gostar de KDE? (12)
E aí? O Warsaw já está funcionando no Debian 13? [RESOLVIDO] (15)
Secure boot, artigo interessante, nada técnico. (4)
copiar library para diretorio /usr/share/..... su com Falha na a... (1)









