<Anterior | Conteúdo | Próxima>
Embora o Linux seja um dos sistemas operacionais mais seguros que existem, e mesmo que seja projetado para continuar, os dados podem ser perdidos. A perda de dados é geralmente a consequência de erros do usuário, mas ocasionalmente uma falha do sistema, como uma falha de energia ou disco, é a causa, portanto, é sempre uma boa ideia manter uma cópia extra dos dados confidenciais e / ou importantes.
9.1.1. Preparando seus dados
9.1.1.1. Arquivando com alcatrão
Na maioria dos casos, primeiro coletaremos todos os dados para fazer backup em um único arquivo, que compactaremos mais tarde. O processo de arquivamento envolve concatenar todos os arquivos listados e remover espaços em branco desnecessários. No Linux, isso geralmente é feito com o alcatrão comando. alcatrão foi originalmente projetado para arquivar dados em fitas, mas também pode fazer arquivos, conhecidos como tarballs.
tar tem muitas opções, as mais importantes são citadas abaixo:
. -v: verboso
. -t: teste, mostra o conteúdo de um tarball
. -x: extrair arquivo
. -c: criar arquivo
. -f dispositivo arquivado: usa dispositivo arquivado como origem / destino para o tarball, o padrão do dispositivo é o primeiro dispositivo de fita (geralmente / dev / st0 ou algo semelhante)
. -j: filtrar bzip2, consulte a Seção 9.1.1.2
É comum omitir o prefixo do traço com alcatrão opções, como você pode ver nos exemplos abaixo.
Use GNU tar para compatibilidade
Os arquivos feitos com um proprietário alcatrão versão em um sistema, pode ser incompatível com alcatrão em outro sistema proprietário. Isso pode causar muitas dores de cabeça, como se o arquivo precisa ser recuperado
em um sistema que não existe mais. Use o GNU alcatrão versão em todos os sistemas para evitar que o administrador do sistema caia em lágrimas. O Linux sempre usa GNU tar. Ao trabalhar em outras máquinas UNIX, digite alcatrão --Socorro para descobrir qual versão você está usando. Contate o administrador do sistema se você não encontrar a palavra GNU em algum lugar.
No exemplo abaixo, um arquivo é criado e descompactado.
gaby: ~> ls imagens /
me + tux.jpg nimf.jpg
gaby: ~> tar cvf images-in-a-dir.tar images /
images / images / nimf.jpg images / me + tux.jpg
gaby: ~> imagens de cd
gaby: ~ / imagens> tar cvf images-without-a-dir.tar * .jpg
me + tux.jpg nimf.jpg
gaby: ~ / imagens> cd
gaby: ~> ls * / *. tar
images / images-without-a-dir.tar
gaby: ~> ls * .tar
imagens-em-um-dir.tar
gaby: ~> tar xvf imagens-em-um-dir.tar
images / images / nimf.jpg images / me + tux.jpg
gaby: ~> tar tvf images / images-without-dir.tar
-rw-r - r-- gaby / gaby 42888 1999-06-30 20:52:25 me + tux.jpg
-rw-r - r-- gaby / gaby 7578 2000-01-26 12:58:46 nimf.jpg
gaby: ~> tar xvf images / images-without-a-dir.tar
me + tux.jpg nimf.jpg
gaby: ~> ls * .jpg
me + tux.jpg nimf.jpg
gaby: ~> ls imagens /
me + tux.jpg nimf.jpg
gaby: ~> tar cvf images-in-a-dir.tar images /
images / images / nimf.jpg images / me + tux.jpg
gaby: ~> imagens de cd
gaby: ~ / imagens> tar cvf images-without-a-dir.tar * .jpg
me + tux.jpg nimf.jpg
gaby: ~ / imagens> cd
gaby: ~> ls * / *. tar
images / images-without-a-dir.tar
gaby: ~> ls * .tar
imagens-em-um-dir.tar
gaby: ~> tar xvf imagens-em-um-dir.tar
images / images / nimf.jpg images / me + tux.jpg
gaby: ~> tar tvf images / images-without-dir.tar
-rw-r - r-- gaby / gaby 42888 1999-06-30 20:52:25 me + tux.jpg
-rw-r - r-- gaby / gaby 7578 2000-01-26 12:58:46 nimf.jpg
gaby: ~> tar xvf images / images-without-a-dir.tar
me + tux.jpg nimf.jpg
gaby: ~> ls * .jpg
me + tux.jpg nimf.jpg
Este exemplo também ilustra a diferença entre um diretório tarred e um monte de arquivos tarred. É aconselhável compactar apenas os diretórios, para que os arquivos não se espalhem ao descompactar o tarball (que pode estar em outro sistema, onde você pode não saber quais arquivos já estão lá e quais são os do arquivo).
Quando uma unidade de fita é conectada à sua máquina e configurada pelo administrador do sistema, os nomes dos arquivos que terminam em .alcatrão são substituídos pelo nome do dispositivo de fita, por exemplo:
alcatrão cvf / dev / tape mail /
O diretório enviar e todos os arquivos que ele contém são compactados em um arquivo que é gravado na fita imediatamente. Uma lista de conteúdo é exibida porque usamos a opção detalhada.
9.1.1.2. Backups incrementais com tar
O alcatrão ferramenta suporta a criação de backups incrementais, usando o -N opção. Com esta opção, você pode especificar uma data e alcatrão irá verificar a hora de modificação de todos os arquivos especificados nesta data. Se os arquivos forem alterados mais recentemente que a data, eles serão incluídos no backup. O exemplo abaixo usa o carimbo de data / hora em um arquivo anterior como valor de data. Primeiro, o arquivo inicial é criado e o carimbo de data / hora no arquivo de backup inicial é mostrado. Em seguida, um novo arquivo é criado, no qual fazemos um novo backup, contendo apenas este novo arquivo:
Jimmy: ~> tar cvpf /var/tmp/javaproggies.tar java / *. java
java / btw.java java / error.java java / hello.java java / income2.java java / income.java java / inputdevice.java java / input.java java / master.java java / method1.java java / mood.java java / moodywaitress.java java / test3.java java / TestOne.java java / TestTwo.java java / Vehicle.java
Jimmy: ~> ls -l /var/tmp/javaproggies.tar
-rw-rw-r-- 1 jimmy jimmy 10240 21 de janeiro 11h58 /var/tmp/javaproggies.tar jimmy: ~> toque em java / newprog.java
Jimmy: ~> tar -N /var/tmp/javaproggies.tar\
-cvp /var/tmp/incremental1-javaproggies.tar java / *. java 2> / dev / null
java / newprog.java jimmy: ~> cd / var / tmp /
Jimmy: ~> tar xvf incremental1-javaproggies.tar
java / newprog.java
Jimmy: ~> tar cvpf /var/tmp/javaproggies.tar java / *. java
java / btw.java java / error.java java / hello.java java / income2.java java / income.java java / inputdevice.java java / input.java java / master.java java / method1.java java / mood.java java / moodywaitress.java java / test3.java java / TestOne.java java / TestTwo.java java / Vehicle.java
Jimmy: ~> ls -l /var/tmp/javaproggies.tar
-rw-rw-r-- 1 jimmy jimmy 10240 21 de janeiro 11h58 /var/tmp/javaproggies.tar jimmy: ~> toque em java / newprog.java
Jimmy: ~> tar -N /var/tmp/javaproggies.tar\
-cvp /var/tmp/incremental1-javaproggies.tar java / *. java 2> / dev / null
java / newprog.java jimmy: ~> cd / var / tmp /
Jimmy: ~> tar xvf incremental1-javaproggies.tar
java / newprog.java
Erros padrão são redirecionados para / dev / null. Se você não fizer isso, alcatrão irá imprimir uma mensagem para cada arquivo inalterado, informando que ele não será despejado.
Essa forma de trabalhar tem a desvantagem de olhar para os carimbos de data / hora nos arquivos. Digamos que você baixe um arquivo no diretório que contém seus backups e o arquivo contenha arquivos que foram criados há dois anos. Ao verificar os carimbos de data / hora desses arquivos em relação ao carimbo de data / hora no arquivo inicial, os novos arquivos realmente parecerão antigos para alcatrão, e não será incluído em um backup incremental feito usando o -N opção.
A melhor escolha seria o -g opção, que criará uma lista de arquivos para backup. Ao fazer backups incrementais, os arquivos são comparados a esta lista. É assim que funciona:
Jimmy: ~> tar cvpf work-20030121.tar -g snapshot-20030121 work /
trabalho / trabalho / arquivo1 trabalho / arquivo2 trabalho / arquivo3
Jimmy: ~> arquivo instantâneo-20030121
Jimmy: ~> tar cvpf work-20030121.tar -g snapshot-20030121 work /
trabalho / trabalho / arquivo1 trabalho / arquivo2 trabalho / arquivo3
Jimmy: ~> arquivo instantâneo-20030121
instantâneo-20030121: ASCII texto No dia seguinte, usuário jimmy trabalhos sobre file3 um pouco mais, e cria file4. No final do dia, ele faz um novo backup:
Jimmy: ~> tar cvpf work-20030122.tar -g snapshot-20030121 work /
trabalho / trabalho / arquivo3 trabalho / arquivo 4
Jimmy: ~> tar cvpf work-20030122.tar -g snapshot-20030121 work /
trabalho / trabalho / arquivo3 trabalho / arquivo 4
Estes são alguns exemplos muito simples, mas você também pode usar esse tipo de comando em um cronjob (consulte a Seção 4.4.4), que especifica, por exemplo, um arquivo de instantâneo para o backup semanal e um para o backup diário.
Os arquivos de instantâneo devem ser substituídos ao fazer backups completos, nesse caso. Mais informações podem ser encontradas no alcatrão documentação.
As coisas reais
Como você provavelmente pode notar, alcatrão está OK quando estamos falando de um diretório simples, um conjunto de arquivos que pertencem um ao outro. Existem ferramentas que são mais fáceis de gerenciar, no entanto, quando você deseja arquivar partições ou discos inteiros ou projetos maiores. Acabamos de explicar sobre alcatrão aqui porque é uma ferramenta muito popular para distribuição de arquivos. Acontecerá frequentemente que você precisa instalar um software que vem em um
o chamado "tarball compactado". Consulte a Seção 9.3 para obter uma maneira mais fácil de realizar backups regulares.
9.1.1.3. Compactando e descompactando com gzip ou bzip2
Os dados, incluindo tarballs, podem ser compactados usando ferramentas zip. o gzip O comando adicionará o sufixo .gz ao nome do arquivo e removerá o arquivo original.
Jimmy: ~> ls-la | grep alcatrão
-rw-rw-r-- 1 jimmy jimmy 61440 6 de junho 14:08 images-without-dir.tar jimmy: ~> gzip imagens-sem-dir.tar
Jimmy: ~> ls -la imagens-sem-dir.tar.gz
-rw-rw-r-- 1 jimmy jimmy 50562 6 de junho 14:08 images-without-dir.tar.gz
Jimmy: ~> ls-la | grep alcatrão
-rw-rw-r-- 1 jimmy jimmy 61440 6 de junho 14:08 images-without-dir.tar jimmy: ~> gzip imagens-sem-dir.tar
Jimmy: ~> ls -la imagens-sem-dir.tar.gz
-rw-rw-r-- 1 jimmy jimmy 50562 6 de junho 14:08 images-without-dir.tar.gz
Descompacte arquivos compactados com o -d opção.
O bzip2 funciona de maneira semelhante, mas usa um algoritmo de compactação aprimorado, criando arquivos menores. Veja as páginas de informações do bzip2 para mais.
Os pacotes de software Linux são geralmente distribuídos em um tarball compactado com gzip. A coisa sensata a fazer depois de descompactar esse tipo de arquivo é encontrar o README e leia. Geralmente contém orientações para a instalação do pacote.
O GNU alcatrão comando está ciente dos arquivos compactados. Use o comando
alcatrão arquivo zxvf.tar.gz
para descompactar e descompactar .tar.gz or . Tgz arquivos. Usar
alcatrão arquivo jxvf.tar.bz2
para desempacotar alcatrão arquivos que foram compactados com bzip2.
9.1.1.4. Arquivos Java
O projeto GNU nos fornece o copo ferramenta para criar arquivos Java. É um aplicativo Java que combina vários arquivos em um único arquivo JAR. Além de ser uma ferramenta de compactação e arquivamento de uso geral, baseada em ZIP e no formato de compactação ZLIB, copo foi projetado principalmente para facilitar o empacotamento de código Java, miniaplicativos e / ou aplicativos em um único arquivo. Quando combinados em um único arquivo, os componentes de um aplicativo Java podem ser baixados com muito mais rapidez.
Diferentemente dos alcatrão, copo compacta por padrão, independente de outras ferramentas - porque é basicamente a versão Java do zip. Além disso, permite que entradas individuais em um arquivo sejam assinadas pelo autor, para que as origens possam ser autenticadas.
A sintaxe é quase idêntica à da alcatrão comando, nos referimos a info copo para diferenças específicas.
tar, jar e links simbólicos
Um recurso digno de nota não realmente mencionado na documentação padrão é que copo seguirá links simbólicos. Os dados para os quais esses links estão apontando serão incluídos no arquivo. O padrão em alcatrão é apenas fazer backup do link simbólico, mas este comportamento pode ser alterado usando o -h para alcatrão.
9.1.1.5. Transportando seus dados