Backup com TAR em LOG usando FITA LTO/DLT com filtro de arquivos

Publicado por Roberto Fettuccia (última atualização em 31/08/2011)

[ Hits: 8.112 ]

Download backup-find-fita.sh




Tendo a necessidade de realizar backup, desenvolvi este simples e prático script para realizar backup em fita LTO/DLT.
O script possui um importantíssimo recurso de filtro para formato de arquivos, podemos desviar do backup os arquivos MP3, AVI, ou qualquer extensão que não seja necessário para o uso final.

etapas do script

1 buscar e indexar arquivos conforme a lista de extenção de arquivo
2 rebobinar midia
3 gravar arquivos listados em lista de indexação
4 geração de log p/ controle
5 apagar lista index..

forma de uso :>
chamar o script no terminal informando o diretório, o próprio script realiza a busca dentro do diretório os arquivos.

$ ./backup.sh /home/usuario/Documentos/

  



Esconder código-fonte

#!/bin/bash

origem=$1
destino=$2
logx=/var/log/backup.log.lista
listatmp=/tmp/lista.backup.txt

echo "<<<INICIO DO BACKUP>>>" >> $logx
echo $(date +%D" ás "%H:%M:%S) >> $logx
echo "rebobinando fita.." >> $logx
mt -f /dev/st0 rewindv >> $logx
echo "" > $listatmp

clear
echo "criando lista de arquivos..."
# Arquivos aprovados para backup...
find $origem -name "*.pdf" >> $listatmp      
find $origem -name "*.doc" >> $listatmp      
find $origem -name "*.docx" >> $listatmp
find $origem -name "*.xls" >> $listatmp
find $origem -name "*.xlsx" >> $listatmp
find $origem -name "*.ppt" >> $listatmp
find $origem -name "*.pptx" >> $listatmp
find $origem -name "*.pps" >> $listatmp
find $origem -name "*.ppsx" >> $listatmp
find $origem -name "*.html" >> $listatmp
find $origem -name "*.htm" >> $listatmp
find $origem -name "*.txt" >> $listatmp
find $origem -name "*.lnk" >> $listatmp
find $origem -name "*.ods" >> $listatmp
find $origem -name "*.odt" >> $listatmp
find $origem -name "*.xlt" >> $listatmp
find $origem -name "*.gif" >> $listatmp
find $origem -name "*.png" >> $listatmp
find $origem -name "*.jpg" >> $listatmp
find $origem -name "*.bmp" >> $listatmp
find $origem -name "*.zip" >> $listatmp

echo "gerando backup..."
echo "
-------------log-------------
" >> $logx

# regras arquivos

tar -cvf /dev/st0 $origem >> $logx
echo "removendo arquivo temp..."
rm $listatmp

Scripts recomendados

Executando comandos remotos via Dropbox

Backup do banco de dados Postgresql

Atualização do FreeBSD

Configurando CISCO por Shell Script

Rsync-centos


  

Comentários
[1] Comentário enviado por danniel-lara em 31/08/2011 - 12:01h

show o script , parabens
podemos melhorar ele para enviar e-mail para controle ehehe
Abraço

[2] Comentário enviado por rpaulafettuccia em 31/08/2011 - 17:28h

versão 2.0 do script melhorado,.....!!!

#!/bin/bash

origem=$1
logx=/var/log/backup.log.lista
listatmp=/tmp/lista.backup.txt

echo "<<<INICIO DO BACKUP>>>" >> $logx
echo $(date +%D" ás "%H:%M:%S) >> $logx
echo "rebobinando fita.." >> $logx
mt -f /dev/st0 rewind >> $logx
echo "" > $listatmp

clear
echo "criando lista de arquivos..."

# Arquivos aprovados para backup...
find $origem -name "*.pdf" >> $listatmp
find $origem -name "*.doc" >> $listatmp
find $origem -name "*.docx" >> $listatmp
find $origem -name "*.xls" >> $listatmp
find $origem -name "*.xlsx" >> $listatmp
find $origem -name "*.ppt" >> $listatmp
find $origem -name "*.pptx" >> $listatmp
find $origem -name "*.pps" >> $listatmp
find $origem -name "*.ppsx" >> $listatmp
find $origem -name "*.html" >> $listatmp
find $origem -name "*.htm" >> $listatmp
find $origem -name "*.txt" >> $listatmp
find $origem -name "*.lnk" >> $listatmp
find $origem -name "*.ods" >> $listatmp
find $origem -name "*.odt" >> $listatmp
find $origem -name "*.xlt" >> $listatmp
find $origem -name "*.gif" >> $listatmp
find $origem -name "*.png" >> $listatmp
find $origem -name "*.jpg" >> $listatmp
find $origem -name "*.bmp" >> $listatmp
find $origem -name "*.cdr" >> $listatmp
find $origem -name "*.cmx" >> $listatmp
find $origem -name "*.eml" >> $listatmp
find $origem -name "*.mdb" >> $listatmp
find $origem -name "*.dwg" >> $listatmp
find $origem -name "*.bak" >> $listatmp
find $origem -name "*.ctb" >> $listatmp
find $origem -name "*.eps" >> $listatmp
find $origem -name "*.rar" >> $listatmp
echo "
-------------log-------------
" >> $logx
echo "escrevendo dados na midia..."
tar -cvf /dev/st0 -L 4697620480 $origem
tar -cv /dev/st0 >> $logx
echo "finalizando..."
sleep 2
clear
echo "removendo arquivo temp..."
rm $listatmp
echo "ejetando midia..."
mt -f /dev/st0 eject
---end---script

Este script atualizado realiza o split em varias fitas, ao atingir o tamanho determinado do backup ele solicita outra fita, utilizei o parâmetro "-L" do tar, pois realizo o backup de 200Gb em fitas DLT de 40Gb, que lol...

espero que gostem...

[3] Comentário enviado por newtec em 16/01/2014 - 17:41h

NÃO É NECESSÁRIO APAGAR A FITA ?

[4] Comentário enviado por rpaulafettuccia em 17/01/2014 - 21:22h


[3] Comentário enviado por newtec em 16/01/2014 - 17:41h:

NÃO É NECESSÁRIO APAGAR A FITA ?


Observe no script este trecho abaixo...
echo "rebobinando fita.." >> $logx
mt -f /dev/st0 rewind >> $logx

na verdede esse script cria um binário direto na fita, desse modo a fita trabalha de forma sequêncial, diferente de um hdd que pode ler "rê-ler" um determinado bit,

ao rebobinar apaga o cabeçalho do arquivo anterior, simples assim..


Contribuir com comentário