Backup Incremental
Publicado por Bruno Annunciato (última atualização em 18/07/2012)
[ Hits: 11.115 ]
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! "
Criando usuário com poderes de root
Script para Firewall de Borda Corporativo
Geração de gráfico em shell script
Substituir strings em arquivos ascII
Nenhum comentário foi encontrado.
Enviar mensagem ao usuário trabalhando com as opções do php.ini
Meu Fork do Plugin de Integração do CVS para o KDevelop
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
Criando uma VPC na AWS via CLI
Multifuncional HP imprime mas não digitaliza
Dica básica para escrever um Artigo.
Como Exibir Imagens Aleatórias no Neofetch para Personalizar seu Terminal
UUID da partição efi mudou, multiboot já era...e agora? (0)