Apr 25, 2008

Linux: Backup em Volumes com TAR e SPLIT


Fiz esse tutorial a uns anos atrás para o site Under-Linux.org
Atualizei ele e resolvi colocar ele aqui também.

Já imaginou você querendo fazer o backup em cd, de um arquivo de 2Gb?
Você deve estar pensando, "É só usar DVD ao invés de CD", mas infelizmente muitos desktops e servidores ainda não estão equipados com um leitor de DVD, e mesmo que a maquina tenha um drive de dvd, isso muitas vezes não é o bastante. Motivo? O backup ser mais maior que 4.7Gb.

Nesse artigo ensinarei a vocês como fazer backup em volumes usando o tar (compactador) e o split (usado para dividir arquivos).


Como compactar?

Sintaxe:

$ tar [compressão] [destino] [arquivo ou diretorio]


[compressão]
- Para usar o gzip (.tar.gz) use: czvf
- Para usar o bz2 (tar.bz2) use: cjvf
- Para apenas empacotar o arquivo sem utilizar nenhuma compressão (.tar) use: cfv

[destino] = nome do arquivo compactado

[arquivo ou diretorio] = caminho do arquivo ou diretório a ser compactado

Exemplos:

$ tar cjvf backup.tar.gz documentos
Compacta o diretório documentos utilizando gzip

$ tar czfv projeto.tar.bz2 /home/usuario/projeto
Compacta o diretório projeto que está em /home/usuario utilizando bz2.



Como dividir o arquivo?

Sintaxe:

$ split -b [tamanho do arquivo] [arquivo] [prefixo]



[tamanho do arquivo] = Tamanho dos volumes, use m para megabyte ou g para gigabyte

[arquivo]
= arquivo que será dividido

[prefixo]
= prefixo que será utilizado para nomear os arquivos.
Se o prefixo for "backup-", os volumes serão nomeados como backup-aa, backup-ab, backup-ac, e assim por adiante.

Exemplos:

$ split -b 695m backup.tar.gz arquivo_
Divide o arquivo backup.tar.gz em volumes de 695 megabytes usando o prefixo arquivo_

$ split -b 4000m projeto.tar.bz2 backup_projeto-
Divide o arquivo projeto.tar.bz2 em volumes de 4000 megabytes (~4 gigabytes) usando o prefixo backup_projeto-



Como unir as partes?

Sintaxe:

$ cat [prefixo]* > [nome do arquivo].[extensão]


[prefixo] = prefixo que será utilizado para nomear os arquivos. Sempre adicione um asterisco após o prefixo. Isso quer dizer que é para tratar TODOS os arquivos iniciados com aquele prefixo.

[nome do arquivo]
= nome que o arquivo de backup terá depois que for restaurado.

[extensão]
= tar.gz se foi utilizando o parametro czvf na compactação ou tar.bz2 se foi usado o parametro cjvf.

Exemplos:

$ cat arquivo_* > backup.tar.bz2

Isso ira "listar" os arquivos iniciados com nome "arquivo_" e irá
mandar o resultado dessa listagem para o arquivo backup.tar.bz2

$ cat backup_projeto-* > projeto.tar.gz

Isso ira "listar" os arquivos iniciados com nome "backup_projeto-" e
irá mandar o resultado dessa listagem para o arquivo projeto.tar.gz



Verificando a integridade do backup

Para verificar se não ocorreu nenhum problema com o arquivo que foi dividido e unido novamente, você deve usar o md5sum.
O md5sum é um utilitário que gera uma chave única para cada arquivo verificado.

Praticamente todas as distribuições disponibilizam em suas páginas de download, a chave md5sum, assim após o download o usuário pode verificar a integridade da imagem que baixou antes de gravar e instalar.
Uma imagem corrompida pode causar programas na hora de gravação e no pior dos casos, você consegue gravar, instalar e depois começam surgir os erros.


Sintaxe:

$ md5sum [nome do arquivo]

[nome do arquivo] = nome do arquivo a ser verificado

Será gerada uma chave do tipo: 6e383bb6a0153668cbab8f5cdd48157f


Depois você faz isso com o arquivo apenas compactado (que ainda nao foi dividido) e compare as chaves para ver se ficou tudo igual.
Se estiverem iguais, pode ficar tranquilo, nenhum problema com o arquivo, mas se houver alguma diferença entre as chaves, algo deu errado e o arquivo está corrompido.


Para entender melhor o split, tar e o md5sum não deixem de ler a man page deles.

$ man split
$ man tar
$ man md5sum

Fiz esse artigo com base em uma dúvida postada no fórum do site Under-Linux.org.


Espero que isso ajude vocês.
Até

0 comments: