Backup Incremental
Publicado por Bruno Annunciato (última atualização em 18/07/2012)
[ Hits: 11.488 ]
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! "
Limpa comentários e linhas em branco nos arquivos de configuração (.conf)
Script para converter arquivos *.rar em *.zip
Nenhum comentário foi encontrado.
Faça suas próprias atualizações de pacotes/programas no Void Linux e torne-se um Contribuidor
Como rodar o Folding@home no Linux
Criando um painel de controle (Dashboard) para seu servidor com o Homepage
O Abismo entre o Código e o Chão: Saltos Tecnológicos e a Exclusão Estrutural no Brasil
Instalar e Configurar a santíssima trindade (PAP) no Void Linux
Pisando no acelerador do Linux Mint: Kernel XanMod, zRAM e Ajustes de Swap
Como compilar kernel no Linux Mint
Lançamento do Brutal DOOM test 6
Consertando o erro no Brave de webgl
Solução para ter de volta as bordas e barra de títulos das janelas em zenity no Debian 13.x
Seno, Coseno, Tangente em CLIPPER (0)
Inserir uma URL num arquvo pelo Ubuntu (CLIPPER) (0)
VMWare Player não conecta na rede nem consigo intercambiar arquivos (1)









