sábado, 13 de dezembro de 2008

Compactadores e Emcompactadores

A pouco tempo me deparei com mais um obstáculo a ser estudado e superado no meu linux foi como compactar e empacotar um diretório ou arquivo.

Chega de papo e vamos ao que interessa!

No mundo GNU/Linux, é muito comum ver a extensão .tar.gz em arquivos de programas, e outros...essa extensão é quando usamos o tar e o gzip juntos, pois aí, além de empacotar, também faremos a compactação!

====> tar - só empacota, não reduz tamanho, apenas junta todos os arquivos em um.

====> gzip/bzip2 - compactador, ou seja, compacta um arquivo reduzindo seu tamanho.

Uma opção ao gzip seria o bzip2, que faz uma compactação muito mais eficiente, ou seja, reduz mais que o gzip!!! ( o bzip2 demora mais que o gzip )

====> gzip - Rápido, porém não muito eficiente na redução de tamanho.

====> bzip2 - Lento, porém muito eficiente na redução de tamanho.

Sintaxe:
===> arquivo.txt - Para o gzip

===> arquivo2.txt - Para o bzip2

Na Pratica:
# time gzip arquivo.txt

# time bzip2 arquivo2.txt

O comando time é apenas para marcar o tempo que o comando irá usar para terminar! Depois que executar esse comando, e vocês irão ver pelo time que o bzip2 demora bem mais que o gzip!!!

Se eu querer fazer um backup de um diretório qualquer como por exemplo o /etc???

Como já sabemos o tar é um campactador para juntar vários aquivos em apenas um diretório, sendo assim vamos usa-lo.

Exemplo:

#cd /backup (esse diretório eu criei para demostração mas você pode fazer o backup em qualquer outro diretório)

# tar -cvf bkp_etc.tar /etc

Repare que eu executei o comando tar -cvf bkp_etc.tar /etc de dentro do diretório /backup.

Onde:
-c - Para criar um backup
-v - (verbose) Para mostrar detalhes para você na hora de criar
-f - Para indicar o nome do arquivo.Essa opção sempre vem por último, pois é ela quem define o nome do arquivo.

# du -h bkp_etc.tar

Podemos especificar para o tar que queremos compactar! Temos que dizer quem será o compactador que irá fazer essa parte do trabalho para ele!

Para dizer para o tar que irei executar ele com mais um compactador tenho que acrescentar uma opção ao comando que fizemos:

z - Para compactar com GZIP
j - Para compactar com BZIP2

Então o comando mudaria para:

Tar com Gzip:

# cd /backup
# tar -cvzf bkp_etc.tar.gz /etc

Onde:

c - Para criar um backup
v - Para mostrar detalhes para você na hora de criar
z - Para compactar com o GZIP
f- Para indicar o nome do arquivo de backup

Tar com Bzip2:

# cd /backup
# tar -cvjf bkp_etc.tar.bz2 /etc

Onde:

c - Para criar um backup
v - Para mostrar detalhes para você na hora de criar
j - Para compactar com o BZIP2
f - para indicar o nome do arquivo de backup

Podem ver que só muda o "j" e o "z". O resto são as mesmas opções...

Testando a integridade dos arquivos.

Como estamos falando de Backup tenho que ter certeza que esses arquivos estão realmente bons...Então, tenho que testar a integridade desses arquivos, e para isso usamos a opção "t":

# tar -tvf bkp_etc.tar

# tar -tvzf bkp_etc.tar.gz

# tar -tvjf bkp_etc.tar.bz2

No qual "t" é a opção que testa!

Depois, para descompactar esses arquivos só mudamos para a opção para "x" que é de extract!

# tar -xvf bkp_etc.tar

# tar -xvzf bkp_etc.tar.gz

# tar -xvjf bkp_etc.tar.bz2

Lembrando que se fizer isso ele vai descompactar no /backup mesmo!

Caso queira descompactar no / para substituir o /etc antigo no caso de um backup temos que especificar isso com o "-C":

# tar -xvf bkp_etc.tar -C /

# tar -xvzf bkp_etc.tar.gz -C /

# tar -xvjf bkp_etc.tar.bz2 -C /

Nenhum comentário: