Backup Incremental
Publicado por Bruno Annunciato (última atualização em 18/07/2012)
[ Hits: 11.358 ]
Download Backup-Incremental.sh
Script para Backup Incremental de Pastas e Arquivos.
Gera Log de todas as ações feitas durante Backup.
Gera lista de arquivos salvos.
#!/bin/bash
# Script para gerar Backups Incrementais.
# Criado por: Bruno Annunciato
#Variável correspondente ao diretório de log. (Onde o log do backup será gerado)
LOGDIRECTORY=/var/log
#Variáveis para a montagem do HD.
DEVHD=/dev/sdb1
DEVDIRECTORY=/mnt/Backup/
#Variaveis de montagem Servidor de Arquivos.
IP=192.168.7.60
MOUNTINGDIRECTORY=/mnt/DADOS/
FOLDERNETWORK=DADOS
USER=USER
PASS=PASSWORD
UID=UID_USER
GID=GID_USER
#Cria o arquivo de log do script de Backup.
echo "DATA: $(date +%d-%m-%Y)" >> $LOGDIRECTORY/backup-$(date +%d-%m-%Y).log
#Montando o HD Externo para o Backup.
echo "" >> $LOGDIRECTORY/backup-$(date +%d-%m-%Y).log
echo "Log das Montagens dos Dispositivos" >> $LOGDIRECTORY/backup-$(date +%d-%m-%Y).log
mount $DEVHD $DEVDIRECTORY >> $LOGDIRECTORY/backup-$(date +%d-%m-%Y).log
#Controle de Erros.
    if [ $? == 0 ]
   then
     echo "HD Externo montando com sucesso! " >> $LOGDIRECTORY/backup-$(date +%d-%m-%Y).log
   else
     echo "HD Externo NÃO montando com sucesso! " >> $LOGDIRECTORY/backup-$(date +%d-%m-%Y).log
    fi
#Montando o Servidor de Arquivos para o Backup.
mount.cifs //$IP/$FOLDERNETWORK $MOUNTINGDIRECTORY -o user=$USER,password=$PASS,uid=$UID,gid=$GID >> $LOGDIRECTORY/backup-$(date +%d-%m-%Y).log
#Controle de Erros.
    if [ $? == 0 ]
   then
     echo "Pasta na Rede montanda com sucesso! " >> $LOGDIRECTORY/backup-$(date +%d-%m-%Y).log
   else
     echo "Pasta na Rede NÃO montanda com sucesso! " >> $LOGDIRECTORY/backup-$(date +%d-%m-%Y).log
    fi
#Variável que corresponde ao diretório de destino. (Onde o backup será gravado)
DAILYDIRECTORY=/mnt/Backup/Diario
#Variável correspondente ao diretório de origem. (Onde o backup será gerado)
BASEDIRECTORY=/mnt/DADOS
#Cria a pasta do Backup Incremental do dia.
mkdir $DAILYDIRECTORY/$(date +%d-%m-%Y)
#Controle de Erros.
    if [ $? == 0 ]
   then
     echo "Pasta do Backup Incremental criada com sucesso! " >> $LOGDIRECTORY/backup-$(date +%d-%m-%Y).log
   else
     echo "Pasta do Backup Incremental NÃO criada com sucesso! " >> $LOGDIRECTORY/backup-$(date +%d-%m-%Y).log
    fi
#Cria o arquivo da lista de arquivos no backup.
echo "DATA: $(date +%d-%m-%Y)" >> $DAILYDIRECTORY/$(date +%d-%m-%Y)/list-$(date +%d-%m-%Y).txt
#Localiza e copia os arquivos alterados no dia.
#Gera lista de arquivos copiados do dia.
echo "" >> $DAILYDIRECTORY/$(date +%d-%m-%Y)/list-$(date +%d-%m-%Y).txt
echo "Lista de Arquivos Backupeados" >> $DAILYDIRECTORY/$(date +%d-%m-%Y)/list-$(date +%d-%m-%Y).txt
echo "" >> $LOGDIRECTORY/backup-$(date +%d-%m-%Y).log
echo "Log dos Arquivos Backupeados" >> $LOGDIRECTORY/backup-$(date +%d-%m-%Y).log
echo "Aguarde backup sendo efetuado."
echo "Esta parte do processo pode demorar mais de 2 horas..."
find $BASEDIRECTORY -type f -newermt $(date +%Y-%m-%d) -exec cp -Raprv --parents {} $DAILYDIRECTORY/$(date +%d-%m-%Y)/ \; >> $DAILYDIRECTORY/$(date +%d-%m-%Y)/list-$(date +%d-%m-%Y).txt
#Controle de Erros.
    if [ $? == 0 ]
   then
     echo "Copia dos arquivos alterados efetuado com sucesso! " >> $LOGDIRECTORY/backup-$(date +%d-%m-%Y).log
   else
     echo "Copia dos arquivos alterados NÃO efetuada com sucesso! " >> $LOGDIRECTORY/backup-$(date +%d-%m-%Y).log
    fi
#Cria o pacote ".tar.gz2".
echo "" >> $LOGDIRECTORY/backup-$(date +%d-%m-%Y).log
echo "Log da Compactação" >> $LOGDIRECTORY/backup-$(date +%d-%m-%Y).log
tar -vcf $DAILYDIRECTORY/$(date +%d-%m-%Y)/backup-$(date +%d-%m-%Y).tar $DAILYDIRECTORY/$(date +%d-%m-%Y)/ >> $LOGDIRECTORY/backup-$(date +%d-%m-%Y).log
#Controle de Erros.
    if [ $? == 0 ]
   then
     echo "Arquivo '.tar' criado com sucesso! " >> $LOGDIRECTORY/backup-$(date +%d-%m-%Y).log
   else
     echo "Arquivo '.tar' NÃO criado com sucesso! " >> $LOGDIRECTORY/backup-$(date +%d-%m-%Y).log
    fi
bzip2 $DAILYDIRECTORY/$(date +%d-%m-%Y)/backup-$(date +%d-%m-%Y).tar >> $LOGDIRECTORY/backup-$(date +%d-%m-%Y).log
#Controle de Erros.
    if [ $? == 0 ]
   then
     echo "Arquivo '.tar.bz2' criado com sucesso! " >> $LOGDIRECTORY/backup-$(date +%d-%m-%Y).log
   else
     echo "Arquivo '.tar.bz2' NÃO criado com sucesso! " >> $LOGDIRECTORY/backup-$(date +%d-%m-%Y).log
    fi
#Efetua copia para a pasta raiz.
echo "" >> $LOGDIRECTORY/backup-$(date +%d-%m-%Y).log4
echo "Log da Copia" >> $LOGDIRECTORY/backup-$(date +%d-%m-%Y).log
cp -v $DAILYDIRECTORY/$(date +%d-%m-%Y)/backup-$(date +%d-%m-%Y).tar.bz2 $DAILYDIRECTORY/ >> $LOGDIRECTORY/backup-$(date +%d-%m-%Y).log
#Controle de Erros.
    if [ $? == 0 ]
   then
     echo "Copia do arquivo '.tar.bz2' efetuada com sucesso! " >> $LOGDIRECTORY/backup-$(date +%d-%m-%Y).log
   else
     echo "Copia do arquivo '.tar.bz2' NÃO efetuada com sucesso! " >> $LOGDIRECTORY/backup-$(date +%d-%m-%Y).log
    fi
#Removendo pasta do Backup (Deixando somente o pacote ".tar.bz2").
echo "" >> $LOGDIRECTORY/backup-$(date +%d-%m-%Y).log
echo "Log da Limpeza" >> $LOGDIRECTORY/backup-$(date +%d-%m-%Y).log
rm -vRf $DAILYDIRECTORY/$(date +%d-%m-%Y)/ >> $LOGDIRECTORY/backup-$(date +%d-%m-%Y).log
#Controle de Erros.
    if [ $? == 0 ]
   then
     echo "Pasta removida com sucesso! " >> $LOGDIRECTORY/backup-$(date +%d-%m-%Y).log
   else
     echo "Pasta NÃO removida com sucesso! " >> $LOGDIRECTORY/backup-$(date +%d-%m-%Y).log
    fi
#Removendo backup de 14 dias atrás.
rm -vRf $DAILYDIRECTORY/backup-$(date +%d-%m-%Y -d "14 days ago").tar.bz2 >> $LOGDIRECTORY/backup-$(date +%d-%m-%Y).log
#Controle de Erros.
    if [ $? == 0 ]
   then
     echo "Backup de 14 dias atrás removido com sucesso! " >> $LOGDIRECTORY/backup-$(date +%d-%m-%Y).log
   else
     echo "Backup de 14 dias atrás NÃO removido com sucesso! " >> $LOGDIRECTORY/backup-$(date +%d-%m-%Y).log
    fi
#Montando o HD Externo para o Backup.
echo "" >> $LOGDIRECTORY/backup-$(date +%d-%m-%Y).log
echo "Log das Desmontagens dos Dispositivos" >> $LOGDIRECTORY/backup-$(date +%d-%m-%Y).log
umount $DEVDIRECTORY >> $LOGDIRECTORY/backup-$(date +%d-%m-%Y).log
#Controle de Erros.
    if [ $? == 0 ]
   then
     echo "HD Externo desmontado com sucesso! " >> $LOGDIRECTORY/backup-$(date +%d-%m-%Y).log
   else
     echo "HD Externo NÃO desmontado com sucesso! " >> $LOGDIRECTORY/backup-$(date +%d-%m-%Y).log
    fi
#Montando o Servidor de Arquivos para o Backup.
umount $MOUNTINGDIRECTORY >> $LOGDIRECTORY/backup-$(date +%d-%m-%Y).log
#Controle de Erros.
    if [ $? == 0 ]
   then
     echo "Pasta na Rede desmontada com sucesso! " >> $LOGDIRECTORY/backup-$(date +%d-%m-%Y).log
   else
     echo "Pasta na Rede NÃO desmontada com sucesso! " >> $LOGDIRECTORY/backup-$(date +%d-%m-%Y).log
    fi
#Informações Finais.
echo "Log armazenado em: $LOGDIRECTORY/backup-$(date +%d-%m-%Y).log"
echo "Rotina Finalizada! "
Administração servidor WEB com Dialog
POSTFIX AUTOMÁTICO COM MYSQL E IPTABLES - CRIANDO USUÁRIOS
Angelinux Scripts - Teste de desempenho da sua maquina!
Nenhum comentário foi encontrado.
IA Turbina o Desktop Linux enquanto distros renovam forças
Como extrair chaves TOTP 2FA a partir de QRCODE (Google Authenticator)
Linux em 2025: Segurança prática para o usuário
Desktop Linux em alta: novos apps, distros e privacidade marcam o sábado
IA chega ao desktop e impulsiona produtividade no mundo Linux
Atualizando o Fedora 42 para 43
Como saber se o seu e-mail já teve a senha vazada?
Como descobrir se a sua senha já foi vazada na internet?
Secure boot, artigo interessante, nada técnico. (4)
E aí? O Warsaw já está funcionando no Debian 13? [RESOLVIDO] (14)
copiar library para diretorio /usr/share/..... su com Falha na a... (1)









