Backup Incremental - tar
Publicado por Rodrigo Sozza 14/06/2008
[ Hits: 15.847 ]
Homepage: http://softwarelivre.org/rsozza
Download backup_incremental.txt
Modelo de Backup Incremental que concatena os arquivos em um tar.
#!/bin/bash
#
# Identificação dos arquivos
IDENTIFICA=Backup
# Numero de dias do ciclo de backup
DIAS=7
# E-mail do administrador
ADMIN=admin@exemplo.com.br
# A partir de onde ficarão os arquivos
PREFIX=/backup
# Onde os arquivos de backup e logs ficarão armazenados
DIR_DESTINO=/backup/arquivos
# Lista de arquivos a não serem backupeados
EXCLUDE=$PREFIX/etc/exclude.list
# Arquivos temporário do script
TEMP=/tmp/.backup.$$
# Arquivos de controle do GNU/Tar
INC=$PREFIX/etc/incremental.conf
# Formato da data
DATA=$(date +%d-%m-%Y-%a)
# Arquivo com a lista de diretórios a serem backupeados
LISTA=$(cat $PREFIX/etc/list.conf | grep ^\/ | sort | uniq)
# Arquivos gerado pelo script para controle de incremento
CONFIG=$PREFIX/etc/backup.conf
VOLTA=0
if [ ! -e $CONFIG ] ; then
touch $CONFIG
NUMERO=1
else
cp -f $CONFIG $CONFIG.bak
LINHAS=$(cat $CONFIG | grep ^[0-9] | wc -l)
[ $LINHAS -eq $((DIAS+1)) ] && VOLTA=1
FIRST=$(cat $CONFIG | grep ^[0-9]- | head -1)
LAST=$(cat $CONFIG | grep ^[0-9]- | tail -1)
OLD=$(echo $LAST | cut -f1 -d"-")
OLD=${OLD:-0}
BACKUP_OLD=$(echo $FIRST | cut -f1 -d"-")
FILE_OLD=$(echo $FIRST | cut -f- -d"-")
if [ $OLD -eq $DIAS ] ; then
NUMERO=1
mv -f $INC $INC.bak
else
NUMERO=$((OLD+1))
fi
fi
DESTINO=$DIR_DESTINO/$IDENTIFICA-$NUMERO-$DATA
SEND_MAIL () {
sendmail $ADMIN << FIMEMAIL
Subject: Backup CL $(date +%d-%m-%Y)
Backup realizado no arquivo: $DESTINO.tar.gz
FIMEMAIL
}
df -h > $DESTINO.log
tar --totals --ignore-failed-read --exclude-from=$EXCLUDE -zcvg $INC -f $DESTINO.tar.gz $LISTA >> $DESTINO.log 2>&1
df -h >> $DESTINO.log
SEND_MAIL $DESTINO.log
echo $NUMERO-$DATA >> $CONFIG
if [ $VOLTA -eq 1 ] ; then
rm -f $DIR_DESTINO/$IDENTIFICA-$FILE_OLD.tar.gz
rm -f $DIR_DESTINO/$IDENTIFICA-$FILE_OLD.log
sed 1d $CONFIG > $TEMP
mv -f $TEMP $CONFIG
fi
Fazendo backup de uma pasta em arquivos separados
Instalando a última versão estável do Eclipse com uma única linha
Organize seu /var/log/messages
Nenhum comentário foi encontrado.
Cirurgia para acelerar o openSUSE em HD externo via USB
Void Server como Domain Control
Modo Simples de Baixar e Usar o bash-completion
Monitorando o Preço do Bitcoin ou sua Cripto Favorita em Tempo Real com um Widget Flutuante
Como fazer a conversão binária e aplicar as restrições no Linux
Como quebrar a senha de um servidor Linux Debian
Como bloquear pendrive em uma rede Linux
Um autoinstall.yaml para Ubuntu com foco em quem vai fazer máquina virtual
Instalar GRUB sem archinstall no Arch Linux em UEFI Problemático
Formas seguras de instalar Debian Sid (13)
Malware encontrado em extensões do Firefox. (0)
Fiz uma pergunta no fórum mas não consigo localizar [RESOLVIDO] (21)









