Conheça os comandos tar e compactadores 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:
Aprenda muito mais sobre Linux em nosso curso online. Você pode fazer a matrícula aqui com trial de 7 dias grátis. Se você já tem uma conta, pode acessar aqui.