Backup Incremental
Publicado por Bruno Annunciato (última atualização em 18/07/2012)
[ Hits: 11.438 ]
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! "
Instalar o Navegador Tor em qualquer distribuição Linux
Sincronizar arquivos com rsync
Script p/ instalar modem onboards
Nenhum comentário foi encontrado.
KDE Plasma - porque pode ser a melhor opção de interface gráfica
Gentoo: detectando impressoras de rede e como fixar uma impressora por IP
Como o GNOME conseguiu o feito de ser preterido por outras interfaces gráficas
Por que sua empresa precisa de uma PKI (e como automatizar EMISSÕES de certificados via Web API)
Instalando NoMachine no Gentoo com Systemd (acesso Remoto em LAN)
Gentoo: Trocando wpa_supplicant pelo iwd no NetworkManager (Systemd)
Instalar Linux em notebook Sony Vaio VPCEG13EB (10)
Vou destruir sua infância:) (6)
Quando vocês pararam de testar distros? (24)









