Backup incremental com rsync

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

[ Hits: 9.700 ]

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

Backup de Roteadores e Switches

Backup incremental com montagem automática e e-mail

Backup usando o tar com o gzip

Backup com Shell Script

Backup de bases MySQL


  

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