Quer fazer seu próprio programa de backup ?

Se voce gostaria de fazer seu próprio programa de backup usando scripts, mas faltava um pouco de orientação, bem, posso te ajudar.
Eu escrevi o script que é bem básico que poderá lhe servir de base para scripts maiores.
O script abaixo foi criado porque eu desejava fazer um backup que mantivesse as estruturas originais das pastas copiadas e realizasse apenas a compactação dos arquivos individualmente. Pode parecer estranho, mas o que eu queria era :
Fazer backup de :

/home/fulano/planilhas/compras.xls
/home/fulano/textos/poesias/minha-esposa.doc
/home/fulano/musicas/mp3/testando-minha-voz.mp3

E ele fosse parar na minha unidade de destino assim :

/media/usbdisk/home/fulano/planilhas/compras.xls.gz
/media/usbdisk/home/fulano/textos/poesias/minha-esposa.doc.gz
/media/usbdisk/home/fulano/musicas/mp3/testando-minha-voz.mp3

Ou seja, compactasse apenas arquivos e não pastas inteiras.
O problema de compactar pastas inteiras num .tar.gz, é que dependendo do tamanho da pasta cria-se um super-gigante-tar.gz e com isso alguns empecilhos na hora de restaurar ou enviar para uma mídia de DVD. Procurei algum programa que fizesse isso, mas infelizmente não achei nenhum e então tive de criar esse script.
A ideia do script é simples, compactar apenas os arquivos na hora de copia-lo para unidade de destino, porém mantendo a mesma estrutura de pastas de seu local de origem. Já que seria feito um script para isso, então não custaria acrescentar a possibilidade de compactar apenas arquivos que valem a pena, sim, não existe vantagens (na minha opinião) de compactar arquivos que já sofreram algum tipo de compactação, por exemplo, arquivos .mp3/.avi/.mp4/.zip/.rar/etc… e de praxe não enviar para backup arquivos que sabemos antecipadamente são temporários.

O SCRIPT

Na realidade, vou parar de colar codigos longos no WordPress porque simplesmente não funciona, então eu colei o script neste link :
http://pastebin.com/f65651973

VANTAGENS E DESVANTAGENS

Há ferramentas de backup muito melhores do que este modesto script, no entanto, o script foi feito porque necessitava das funcionalidades que mencionei acima. Por isso, algumas vantagens :
– Backup mais rápido por selecionar compactar apenas o que pode ser compactado.
– Restauração rápida, na realidade é só encontrar o arquivo que necessita e copia-lo de volta para o disco.
– Menores chances de corrupção de arquivos em mídias como CDROM porque todos os arquivos são compactados individualmente, e não um super-big-arquivo compactado, onde um bit corrompido pode comprometer todo o restante.

Mas há desvantagens também :

– Método de compactação menos eficiente com arquivos menores que o tamanho do cluster do disco, se um cluster tiver 4K e o arquivo compactado tiver 1K, ocupa-se 4K no disco, epa ! não fui eu que criou essa regra falha de armazenamento de arquivos. No tópico a seguir eu falo a respeito disso.

COMPACTAR PASTAS OU ARQUIVOS INDIVIDUAIS, eis a questão ?

Como foi dito, compactar arquivos individuais traz um problema, arquivos muito pequenos embora possam ser compactados em 50%, seus bytes armazenados podem corresponder a capacidade do tamanho do cluster do disco.
Por isso, quando se compacta pastas inteiras, o tamanho de armazenamento será melhor, para exemplificar melhor:
– Temos 100 arquivos de 4K, vamos aplicar uma compactação de 50%, resultado ? 200K, certo ? Sim e não. Se o tamanho do cluster for de 4K, isso indica que não posso ter arquivo menor de 4K porque ele continuará a ocupar 4K, então se o arquivo tiver o tamanho final de 2K, será 4K o espaço alocado. Existem filesystem que fazem subalocação de cluster, mas nem FAT/NTFS/EXT fazem isso. Nossa compactação então foi nula, porque embora reduzissemos cada arquivo individualmente para 2K eles continuarão a ocupar 4K. Pense numa pasta cheia de arquivos GIFs bem pequenos, pois é, já viu o tamanho do problema.

Por essa razão compactar pastas inteiras é uma solução melhor, embora possa apresentar maiores riscos de corrupção. Como estamos falando de BACKUP, na maioria dos casos pode-se abrir mão duma melhor compactação em detrimento de maior segurança.

PORQUE UM SCRIPT ?

Porque num script pode-se personalizar uma instrução de backup.
Posso acrescentar montagens especiais de discos tanto na origem como no destino, evitar erros de operação antecipando-os e se o procedimento de backup mudar eu posso mudar o script.

Voce verá no script que num instante posso alterar a compactação individual de arquivos, por uma compactação por pasta. Posso trocar a compactação zip por gzip ou por 7zip. Enfim, flexibilidade.

Vamos a um exemplo, se voce olhar o script de perto verá que foi usada a função “do_copy” que faz a cópia dos arquivos de um lugar para o outro, vamos substituir a função “do_copy” por outra “do_copy_7z” que ao invés de copiar arquivos individualmente, compactará a pasta. É dessa flexibilidade que estou falando.

CONCLUSÃO

O script é apenas um exemplo para voce aprender a criar sua própria ferramenta de trabalho.
A vantagem do script é que voce pode modularizar e personalizar a solução do problema.
Pode começar com um script menor e caminhar para um script maior.

Podem curti-lo a vontade.
Se tiverem dúvidas, procurem uma lista de discussão adequada, não costumo responder mensagens de programação no blog.

Anúncios
  1. #1 por diggao em 17 \17\UTC agosto \17\UTC 2009 - 13:08

    Muito interessante!

    O uso de scripts é realmente uma das melhores soluções para automatizar determinadas tarefas no Linux, na realidade, até no windows podemos fazer uso de scripts. Eu mesmo uso alguns scripts simples no trabalho para realizar backups de alguns arquivos importantes. Tendo em vista os scripts que crio para meu uso próprio, o seu está anos-luz à frente ;-)

    Um dia ainda farei scripts assim…

    No caso do WordPress, o problema está nas aspas “”, o blog simplesmente muda as aspas normais por aspas “inglesas”, tornando os códigos inválidos.

    Existe inclusive um plugin que resolve isso na versão “instalada” do wordpress, o “Unfancy Quote”. Como nunca usei a versão “wordpress.com”, não sei dizer se funciona.

  2. #2 por mazikano.net em 27 \27\UTC agosto \27\UTC 2009 - 2:24

    Thanks! You have a pretty good blog yourself

%d blogueiros gostam disto: