Compactadores de arquivos no Linux [Guia Básico]
Os compactadores de arquivos no Linux são usados no dia a dia dos administradores.
Conheça os comandos tar e compactadores gzip, bgzip e xz para juntar e comprimir arquivos no Linux. Essencial para qualquer administrador.
Comando tar
Uso:
$ tar [ctxurgjzpvfNCMF] [destino] [fonte]
O nome deste comando provém de “Tape-ARchive”. Ele lê arquivos e diretórios e salva em fita ou arquivo. Juntamente com os dados, ele salva informações importantes como a última modificação, permissões de acesso e outros. Isso o torna capaz de restaurar o estado original dos dados.
O comando tar recebe dois argumentos. São eles:
[fonte]: Se o tar for utilizado para fazer backup, este parâmetro pode ser um arquivo, um dispositivo, um diretório a ser copiado;
[destino]: Se o comando for utilizado para backup, esta opção irá especificar o destino para os dados. Pode ser um arquivo tarball ou um dispositivo. Se for utilizado para restaurar os arquivos, ela irá especificar um arquivo tarball e um dispositivo de onde os dados serão extraídos.
As opções mais frequentes são:
- -c: Cria um novo arquivo .tar;
- -t: Lista o conteúdo de um arquivo .tar;
- -x: Extrai os arquivos de arquivo .tar;
- -u: Adiciona mais arquivos ao arquivo .tar somente se estes forem novos ou modificados;
- -r: Adiciona os arquivos especificados no final do arquivo .tar;
- -g: Cria um backup incremental;
- -j: Utiliza o bzip2 para compactar e descompactar os arquivos .tar;
- -z: Utiliza o gzip para compactar e descompactar os arquivos .tar;
- -p: Extrai os arquivos com as mesmas permissões de criação;
- -v: Lista todos os arquivos processados;
- -f: Indica que o destino é um arquivo em disco, e não uma unidade de fita magnética;
- -N: data Salva somente os arquivos mais novos que a data especificada;
- -C: Especifica o local para onde os dados serão extraídos;
- -M: Habilita múltiplos volumes;
- -T: Cria um pacote .tar a partir de uma lista de arquivos e diretórios.
Exemplos:
Para salvar um determinado diretório /var/lib/mysql em um no arquivo /var/backup/mysql.tar.gz.
# tar cvzf /var/backup/mysql.tar.gz /var/mysql
Para extrair o mesmo pacote:
# tar xvzf /var/backup/mysql.tar.gz –C /
Para criar um backup do diretório /home/documentos em múltiplos disquetes:
# tar cvMf /dev/fd0 /home/documentos
Para criar um pacote a partir de uma relação de diretórios em um arquivo e com a data superior a 01/05/2004.
# cat listabackup.txt
/etc
/var/lib/mysql
/usr/local/apache2/conf
# tar czPf backup-010504.tar.gz -N 01/05/2004 -T listabackup.txt
Para salvar o diretório /etc em fita SCSI no dispositivo /dev/st0:
# tar cvz /dev/st0 /etc
Para listar o conteúdo de uma fita SCSI no dispositivo /dev/st0:
# tar tfz /dev/st0
Para extrair somente o arquivo de password:
# tar xvfz /dev/st0 etc/passwd
As operações de backup de dados podem ser automatizadas através de scripts shell e programadas no cron, exigindo-se somente do administrador a troca de mídias e conferência dos relatórios.
Os Compressores de Dados
Comando gzip e gunzip
Para uma maior eficiência e economia de mídias de backup, existe o recurso de compressão de dados.
O primeiro compressor de dados muito utilizado é o gzip. Ele utiliza um algoritmo de compreensão chamado Lempel-Ziv. Esta técnica encontra caracteres duplicados nos dados de entrada. A segunda ocorrência dos caracteres é substituída por ponteiros para a referência anterior, na forma de pares de distância e comprimento. Ao compactar um arquivo, o gzip adiciona o sufixo .gz.
Para compactar um arquivo:
$ gzip arquivo
Para descompactar um arquivo:
$ gzip –d arquivo.gz
Ou
$ gunzip arquivo.gz
Comando bzip2 e bunzip2
O compactador bzip2 compacta arquivos utilizando o algoritmo de Burrows-Wheeler e Huffman. Esta técnica opera em blocos de dados grandes. Quanto maior o tamanho dos blocos, maior a taxa de compressão atingida. Ele é considerado melhor que os compressores convencionais de dados. Ao compactar um arquivo, o bzip2 adiciona o sufixo .bz2.
Para compactar um arquivo:
$ bzip2 arquivo
Para descompactar um arquivo:
$ bzip2 –d arquivo.bz2
Ou
$ bunzip2 arquivo.bz2
Existem alguns casos onde o arquivo compactado pode ficar maior que o arquivo original. Isto pode ocorrer se o algoritmo utilizado não encontrar ocorrências para fazer a compressão dos dados e o cabeçalho do compactador é adicionado ao arquivo original.
Comando xz
Ainda, temos o compressor de dados xz, que utiliza o algoritmo similar ao gzip. Ele produz arquivos com a extensão .xz ou .lzma.
Para compactar um arquivo:
$ xz arquivo
Para descompactar:
$ xz –decompress arquivo.xz
Para você ter uma ideia da diferença entre os três compactadores gzip, bzip2 e xz, veja o exemplo comparativo do pacote TAR de um arquivo de backup de um site:
site.tar 9,8M # arquivo sem compactação;
site.tar.gz 2,6M # arquivo compactado com gzip
site.tar.bz2 2,4M # arquivo compactado com bzip
site.tar.xz 2,1M # arquivo compactado com xz
Conclusão
Se você precisa fazer backup de dados no Linux, é imprescindível conhecer os comandos tar, gzip, bzip e xz.
Aprenda muito mais sobre Linux em nosso curso online. Você pode efetuar a matrícula aqui. Se você já tem uma conta, ou quer criar uma, basta entrar ou criar seu usuário aqui.