Backup Incremental
Publicado por Bruno Annunciato (última atualização em 18/07/2012)
[ Hits: 11.096 ]
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! "
Levantamento de hardware e software no Mandriva 2006
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