Backup incremental com rsync

Publicado por Eduardo Antonio Marcial Marques (última atualização em 03/09/2018)

[ Hits: 9.639 ]

Homepage: www.valedolinux.com.br

Download 1533941815993117181198.jpg




O programa rsync é um utilitário de cópia muito utilizado para fazer backups, ele aceita diversos parâmetros como uso de chaves, manipulação de parâmetros, cópias diferenciais e incrementais.

Abaixo vou deixar um pequeno bashscripts de backup incremental.

Frisando que no backup incremental o local que recebe a cópia completa sempre fica atualizada e o que é mudado é adicionado na pasta de "incrementais".

Exemplo:

ANTES DO RSYNC

Origem:
/DADOS/word.doc     13 kb

Destino:
/BKPFULL/DADOS/word.doc    13 kb

DEPOIS DO RSYNC COM MUDANÇA NA ORIGEM NO DIA 01/01/2022

Origem:
/DADOS/word.doc     124 kb

Destino:
/BKPFULL/DADOS/word.doc    124kb
/BKP_INCR/01-01-2022/DADOS/word.doc    13 kb

  



Esconder código-fonte

#!/bin/bash
#
# www.valedolinux.com.br
# Autor: Eduardo Marcial
# Data: 2018
# Backup Incremental
#
##################################################################################

##################################################################################
# DECLARAÇÃO DE VARIÁVEIS


DATA=$(date +%F)      #Carimbo de data aaaa-mm-dd
ORIGEM="/home/setores"
COMPLETO="/mnt_hdext/backup-incremental/FULL"
DESTINO="/mnt_hdext/backup-incremental/$DATA"
PASTLOG="/mnt_hdext/backup-incremental/log"   
LOG="$PASTLOG/log-$DATA"    #Log do backup
UUID_HD_USB=""

##################################################################################
# CHECA MONTAGEM DO HD EXTERNO

CHECK_MOUNTED=$(mount |grep -w \/mnt_hdext|tail -1|wc -l)
if [ "${CHECK_MOUNTED}" = "0" ]; then
 mount /dev/sdb1 /mnt_hdext 2>> ${LOG}
        if [ $? -gt 0 ]; then
         echo -e "\n ERRO AO MONTAR HD-EXTERNO USB UUID="${UUID_HD_USB}"." >> $LOG
                exit 1
        else
                echo -e "\n OK - HD-EXTERNO USB MONTADO COM SUCESSO" >> $LOG;
        fi
        
fi
##################################################################################
# CRIA DIRETORIOS E ARQUIVOS

if [ ! -d ${DESTINO} ]; then
        mkdir -p ${DESTINO}
fi

if [ ! -d ${COMPLETO} ]; then
        mkdir -p ${COMPLETO}
fi

if [ ! -d ${PASTLOG} ]; then
        mkdir -p ${PASTLOG}
fi

touch $LOG

##################################################################################
# Inicio de bkp

echo "Inicio de backup $(date)" >> $LOG


##################################################################################
# REALIZAR BKP

sudo rsync -azbvP --exclude='TEMP' --delete --backup-dir=$DESTINO $ORIGEM $COMPLETO 2>> $LOG

##################################################################################
# SE NÃO HOUVE ERRO NO BACKUP FAZ LIMPEZA - 60 DIAS 

if [ "$?" -eq 0 ]; then
 find $DESTINO -maxdepth 1 -mtime +60 -exec rm -rf {} \; 2>> $LOG
else
 echo "Erro ao realizar backup incremental. $DATA" >> $LOG
fi

echo "Fim de backup $(date)"

Scripts recomendados

Script de Back Up, com limpeza de back ups antigos e e-mail com logs

DriveTool.sh: um script para cópia rápida e segura de arquivos para unidades flash USB

Criptografando arquivos para enviar pra sua nuvem

Backup Ubiquiti com usuários e senhas SSH diferentes

Backup usando o tar com o gzip


  

Comentários

Nenhum comentário foi encontrado.


Contribuir com comentário




Patrocínio

Site hospedado pelo provedor RedeHost.
Linux banner

Destaques

Artigos

Dicas

Tópicos

Top 10 do mês

Scripts