Empacotadores

Nesse post, vou falar sobre empacotador. Empacotar, aqui, nada mais é do que reunir vários arquivos dentro de outro, que é chamado de pacote. O principal programa utilizado para empacotar, é o tar – Tape ARchive.

O tar, diferente dos compactadores, não realiza a compressão dos arquivos que está empacotando; portanto, o tamanho final de um pacote tar, é mais ou menos a soma dos arquivos que estão sendo empacotados.

Geralmente, o tar é utilizado para fazer backup de arquivos e diretórios, muito diferente do gzip e do bzip2 que fazem compressão somente de arquivos. E a boa notícia é que, podemos usar somente o tar pra empacotar, ou então se quisermos comprimir podemos usar o tar com algum dos compactadores que comentei no post passado!

Prá começar, vou mostrar o tar sendo somente o empacotador. Imagine que vamos mexer em alguns arquivos de configuração dentro do /etc e queremos fazer um backup do diretório inteiro, antes de começarmos a mexer nos arquivos. Vamos criar um diretório chamado backup dentro do /root prá guardar nossos backups lá:

# mkdir /root/backup

Agora, vamos fazer o backup:

# tar cvf /root/bkp_etc.tar /etc

Onde:

c – vem de create, é a opção usada para criar o backup.
v – é o verbose, mostra os detalhes do que está fazendo quando está criando o pacote
f – é file, indica o nome do arquivo. Essa opção sempre vem por último, pois é ela quem define o nome do arquivo!

Uma coisa que é importante falar, para criar um pacote tar, seja comprimido ou não… tem que seguir uma ordem! Se vocês observarem, depois das opções do tar, eu coloquei o caminho onde meu pacote será salvo e o nome que ele terá… e só depois, eu indiquei qual diretório vai ser empacotado!

Agora vamos comparar o tamanho do diretório /etc com o pacote que geramos:

# du -hs /etc/
2,4M    /etc/

# du -hs bkp_etc.tar
1,4M    bkp_etc.tar

Vejam que o tamanho entre o diretório é diferente… e vocês podem me dizer: “mas Nix, você não disse lá em cima que o tar não comprime, só empacota?”.

E eu digo que sim, o tar não comprime, só empacota… mas por conta de reunir os arquivos em um lugar só, as referências de dados dos arquivos no disco podem mudar, e então isso pode influenciar no tamanho do pacote tar.

Agora… vamos ver como tudo fica quando colocamos um compactador na jogada! Por exemplo, vamos compactar o /etc de novo, só que agora, além de empacotar, vamos compactar!

E isso é muito simples… basta acrescentar mais uma opção ao comando tar:

z – Para compactar com gzip
j – Para compactar com bzip2

Veja o exemplo abaixo para compactar usando o gzip:

# tar czvf /root/bkp_etc.tar.gz /etc

No comando acima, o que mudou, foi a opção z que é para dizer ao tar que vamos usar o gzip para compactar, e também mudamos a extensão do arquivo para tar.gz!

Agora vejam o exemplo para compactar usando o bzip2:

# tar cjvf /root/backup/bkp_etc.tar.bz2 /etc

Vejam novamente acima, o que mudou agora foi a opção j, que é para dizer ao tar que agora estamos usando o bzip2 para compactar e também mudamos a extensão do arquivo para tar.bz2!

Vamos comparar os tamanhos:

# du -hs /root/backup/bkp_etc.tar*
1,4M    bkp_etc.tar
248K    bkp_etc.tar.bz2
288K    bkp_etc.tar.gz

Vejam a diferença no tamanho dos arquivos quando não usamos nenhuma compactação e quando usamos!

Agora… uma coisa que é importante saber é que, se estamos falando de backup, temos que ter certeza de que os arquivos estão ok. Afinal de contas, de nada adianta um backup que os arquivos estejam corrompidos!

E o tar, tem a opção que testa a integridade dos arquivos, é a opção t (test):

# cd /root/backup

# tar tf bkp_etc.tar

# tar tzf bkp_etc.tar.gz

# tar tzf bkp_etc.tar.bz2

Se não houver nenhum erro, seu backup está OK. E quando for extrair (descompactar), o comando é praticamente o mesmo… o que muda é a opção que será x (extract):

# cd /root/backup

# tar xvf bkp_etc.tar

# tar xvzf bkp_etc.tar.gz

# tar xvjf bkp_etc.tar.bz2

Nos comandos acima, além de extrair, usei a opção v (verbose) para mostrar o conteúdo do pacote que está sendo extraído! Só lembrando que, o comando acima, irá extrair o pacote no diretório em que você está, no meu caso, no /root/backup.

Imaginando que queira substituir o atual /etc pelo seu backup, o comando fica assim:

# tar xvf bkp_etc.tar -C /

# tar xvzf bkp_etc.tar.gz -C /

# tar xvjf bkp_etc.tar.bz2 -C /

Onde a opção -C indica ao tar que o pacote não será extraído no diretório atual, e sim no diretório que estou indicando (no caso, o diretório /).

Bem, é isso ai pessoal! Até o próximo post😉 !

0 Responses to “Empacotadores”



  1. Deixe um comentário

Deixe uma resposta

Preencha os seus dados abaixo ou clique em um ícone para log in:

Logotipo do WordPress.com

Você está comentando utilizando sua conta WordPress.com. Sair / Alterar )

Imagem do Twitter

Você está comentando utilizando sua conta Twitter. Sair / Alterar )

Foto do Facebook

Você está comentando utilizando sua conta Facebook. Sair / Alterar )

Foto do Google+

Você está comentando utilizando sua conta Google+. Sair / Alterar )

Conectando a %s




Follow Nix on WordPress.com
junho 2009
S T Q Q S S D
« maio   jul »
1234567
891011121314
15161718192021
22232425262728
2930  

Flickr Photos

Red and Gold

Mais fotos

%d blogueiros gostam disto: