backup diferencial remoto
Publicado por Fábio de Souza (última atualização em 29/12/2011)
[ Hits: 6.771 ]
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
Firewall simples mas muito util
Script para ativar a interface de rede
Script simples em Shell para testar se o kernel está com o patch KPTI habilitado
Ordena os números em ordem ascendente!
Nenhum comentário foi encontrado.
Cinnamon seria a aposta acertada frente às outras interfaces gráficas mais populares?
KDE Plasma - porque pode ser a melhor opção de interface gráfica
Gentoo: detectando impressoras de rede e como fixar uma impressora por IP
Como o GNOME conseguiu o feito de ser preterido por outras interfaces gráficas
Por que sua empresa precisa de uma PKI (e como automatizar EMISSÕES de certificados via Web API)
Instalando NoMachine no Gentoo com Systemd (acesso Remoto em LAN)
Vou destruir sua infância:) (8)
Interface gráfica com problema (2)
Instalar Linux em notebook Sony Vaio VPCEG13EB (13)









