Backup Incremental - tar
Publicado por Rodrigo Sozza 14/06/2008
[ Hits: 15.472 ]
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
Monitoração e coleta de dados de performance de servidores GNU/Linux
Localizar e Matar Determinado Processo Pelo Nome
Nenhum comentário foi encontrado.
Compartilhando a tela do Computador no Celular via Deskreen
Como Configurar um Túnel SSH Reverso para Acessar Sua Máquina Local a Partir de uma Máquina Remota
Configuração para desligamento automatizado de Computadores em um Ambiente Comercial
Efeito "livro" em arquivos PDF
Como resolver o erro no CUPS: Unable to get list of printer drivers
Flatpak: remover runtimes não usados e pacotes
Mudar o gerenciador de login (GDM para SDDM e vice-versa) - parte 2
Wifi não funciona no Aspire ES 15 com o Debian (11)
Teclado não funciona no Debian (1)
Como atualizar o Debian 8 para o 10 (10)
Dica sobre iptables ACCEPT e DROP (6)
NGNIX - Aplicar SNAT para evitar roteamento assimetrico (29)
[Python] Automação de scan de vulnerabilidades
[Python] Script para analise de superficie de ataque
[Shell Script] Novo script para redimensionar, rotacionar, converter e espelhar arquivos de imagem
[Shell Script] Iniciador de DOOM (DSDA-DOOM, Doom Retro ou Woof!)
[Shell Script] Script para adicionar bordas às imagens de uma pasta