• Nenhum resultado encontrado

Backup. Tar arquivos de pacotes

N/A
N/A
Protected

Academic year: 2022

Share "Backup. Tar arquivos de pacotes"

Copied!
17
0
0

Texto

(1)

Backup

Iremos ver neste capítulo as diversas formas de fazer backup de arquivos, diretórios, mídias de armazenamento (CD ou DVD) ou partições do sistema, usando os comandos tar, cpio, dd, dump e restore, sendo que a forma mais eficiente de backup de um sistema inteiro é usando o comando dump e restore.

Tar – arquivos de pacotes

O comando tar faz a leitura de vários arquivos ou diretórios e depois os compacta em um único arquivo reduzindo seu tamanho, sendo a forma mais simples de fazer backups de arquivos, diretórios e de um diretório para outro.

Para fazer backup usamos usando tar podemos usar algumas opções como:

-c (para criar um novo arquivo compactado no formato dos comandos tar, bzip2, gzip ou gunzip)

-x (para descompactar um arquivo compactado)

-v (para exibir mensagens do comando executado)

-f (especifica um arquivo compactado com a extensão .tar, .tar.gz, tar.bz2)

-t (lista todos os arquivos dentro do arquivo compactado)

-p (preservas as permissões)

-j (compacta um arquivo no formato do comando bzip2)

-z (compacta um arquivo no formato dos comandos gzip e gunzip)

Exemplos :

O exemplo abaixo cria um diretório com três arquivos e depois o compacta no formato tar, bzip2, gzip ou gunzip

(2)

$ mkdir pasta

$ cd pasta

$ touch arquivo{1,2,3}.txt

$ ls

arquivo1.txt arquivo2.txt arquivo3.txt

$ cd ..

$ tar -cvf backup.tar pasta pasta/

pasta/arquivo2.txt pasta/arquivo1.txt pasta/arquivo3.txt

Cria um backup no formato tar

$ tar -cvf backup.tar pasta pasta/

pasta/arquivo2.txt pasta/arquivo1.txt pasta/arquivo3.txt

Cria um backup no formato bzip2

$ tar -cvjf backup.tar.bz2 pasta

(3)

pasta/

pasta/arquivo2.txt pasta/arquivo1.txt pasta/arquivo3.txt

Cria um backup no formato bzip ou gunzip

$ tar -cvzf backup.tar.gz pasta pasta/

pasta/arquivo2.txt pasta/arquivo1.txt pasta/arquivo3.txt

Agora para restaurar o backup utilize a opção -x ao invés da opção -c, e também é possível especificar o diretório de destino com a opção -C onde será restaurado o backup, como mostra o exemplo abaixo.

$ tar -xvzf backup.tar.gz -C /tmp pasta/

pasta/arquivo2.txt pasta/arquivo1.txt pasta/arquivo3.txt

cpio – utilitário de copia de arquivos de um local para outro

(4)

O comando cpio agrupa vários arquivos em um só de forma similar ao comando tar, mas sendo raramente usado hoje em dia e possui algumas opções como:

-o (cria um novo arquivo compactado)

-i (extrai arquivos de um arquivo compactado)

-t (lista o conteúdo)

A sintaxe do comando cpio é:

cpio opções < arquivo_origem > arquivo_destino

Exemplos :

Este exemplo cria um arquivo chamado arquivos.txt com a opção -o do comando cpio, e depois o compacta agrupando em arquivo binário (.bin) chamado arquivos.bin.

$ cat > arquivos.txt arquivo1.txt

arquivo2.txt

$ touch arquivo1.txt arquivo2.txt

$ cpio -o < arquivos.txt > /tmp/arquivos.bin 1 block

Agora para desagrupar os arquivos compactados renomeie ou apague os arquivos originais para que possa ser feito a restaurmação do backup usando a opção -i do comando cpio

(5)

$ rm -f arquivo1.txt arquivo2.txt

$ cpio -i < /tmp/arquivos.bin 1 block

dd – utilitário para converter e copiar arquivos

É um programa de copia e conversão de arquivos, onde pode ser usado para criar uma copia de um sistema de arquivos inteiro de um disco ou partição, mas cujos tamanhos das partições sejam exatamente iguais (Ex: /dev/hda1 – 500 MB, /dev/hda2 – 500 MB).

A sintaxe do comando dd é:

dd if=origem of=destino opções

O comando dd possui algumas opções que são descritas abaixo:

if = ARQUIVO (Lê a partir do arquivo ao invés da entrada padrão)

of = ARQUIVO (Escreve no arquivo ao invés da saída padrão)

ibs = BYTES (Lê a quantidade de bytes de uma vez. O padrão é 512)

obs = BYTES (Escreve a quantidade de bytes de uma vez. O padrão é 512)

cbs = BYTES (Especifica a conversão de tamanho de bloco para bloco e não_bloco)

bs = BYTES (Lê e escreve a quantidade de bytes de uma vez)

skip = BLOCOS (Salta blocos ibs-byte blocos no arquivo de entrada antes da cópia)

seek = BLOCOS (Salta blocos obs-byte blocos no arquivo de saída antes da cópia)

count = BLOCOS (Copia blocos ibs-byte blocos do arquivo de entrada, ao invés de tudo até o final do arquivo)

conv = CONVERSÃO (Converte o arquivo conforme especificado pelo(s) argumento(s) de CONVERSÃO)

Alguns tipos de conversão são:

(6)

ascii - Converte EBCDIC para ASCII.

block - Para cada linha na entrada, a saída tem cbs bytes, recolocando a nova linha de entrada com espaço e enchendo com espaços se necessário.

unblock - Recoloca espaços em cada bloco de entrada cbs-sized como uma nova linha.

noerror - Continua depois de erros de leitura.

notrunc - Não trunca (limpa) o arquivo de saída.

sync - Enche todos os blocos de entradas para o tamanho de ibs com valores de zero no final

Os BLOCOS e BYTES podem ser em números ou múltiplos:

Bytes (b) – Ex: b 512

KiloBytes (KB ou K) – Ex: kB 1000, K 1024

MegaBytes (MB ou M) - MB 1000*1000, M 1024*1024

GigaBytes (GB ou G) – Ex: 1000*1000*1000, G 1024*1024*1024

Exemplos :

O exemplo abaixo faz uma copia de um arquivo com menos de 1.44 MB para o drive de disquete localizado em /dev/fd0.

$ dd if=arquivo.tar.gz of=/dev/fd0

O exemplo abaixo faz uma copia de um CD (podendo ser usado também um DVD) localizado no dispositivo /dev/hdd usando o link simbólico /dev/cdrom, logo em seguida é criado um arquivo .iso no diretório /tmp e gravado com o comando cdrecord (wodim) ou growisofs em um gravador de CD ou DVD localizado no dispositivo /dev/hdc usando o link simbólico /dev/cdrw ou /dev/dvd.

$ dd if=/media/cdrom of=/tmp/CD.iso

$ cdrecord -v speed=4 dev=/dev/cdrom -data /tmp/CD.iso ou

(7)

$ growisofs -dvd-compat -Z /dev/dvd=/tmp/CD.iso

O exemplo abaixo localiza todos os arquivos com a extensão .conf localizado no diretório /etc e cria o arquivo arquivos.txt. Depois é executado o comando dd que lê o arquivo arquivos.txt e cria o arquivo /tmp/arquivo_destino.txt lendo e escrevendo de 1K por vez.

$ cd pasta

$ find /etc/ -name *.conf > arquivos.txt

$ dd if=arquivos.txt of=/tmp/arquivo_destino.txt bs=1K

Copia completa de um disco rígido

Usando dd você pode criar backups de um disco rígido ou de apenas uma parte do disco (partição). Isto é também usado para fazer uma copia de uma instalação do Linux, ou seja, um clone para outros computadores similares, mas desde que tenham os discos rígidos exatamente do mesmo tamanho, mesmo modelo e fabricante (Ex: HD da marca Samsung – modelo SP0411N – 40 GB).

Exemplos:

Este exemplo faz uma copia do primeiro disco rígido e todas suas partições localizado no dispositivo /dev/hda, para o segundo disco rígido localizado no dispositivo /dev/hdb. (desde que tenham o mesmo tamanho, marca e modelo Ex: /dev/hda (15 GB) - /dev/hdb (15 GB)).

As opções count e bs são usadas para fazer o backup usando o primeiro bloco com poucos bytes (neste caso 512 bytes) para armazenar o MBR e a tabela de partição do disco.

(8)

* Vale lembra que este processo demora muitas horas, geralmente isso é feito da noite para o dia.

# dd if=/dev/hda of=/dev/hdb count=1 bs=512

Ou você pode também especificar um outro local com bastante espaço para armazenar a copia do disco rígido, e ainda usar o compactador gzip para comprimir o tamanho do arquivo.

# dd if=/dev/hda of=/home/backup/arquivo count=1 bs=512

ou usando o comando gzip

# dd if=/dev/hda | gzip > /home/backup/arquivo.gz

Restaurando backup da copia do disco rígido

Onde /home/backup/arquivo é o arquivo de backup do primeiro disco /dev/hda, e /dev/hdb é o segundo disco rígido

# dd if=/home/backup/arquivo of=/dev/hdb count=1 bs=512

Ou usando o comando gzip

# gzip -dc /home/backup/arquivo.gz | dd of=/dev/hdb count=1 bs=512

Copia de uma partição

(9)

Para fazer uma copia entre partições desde que a partição de origem seja do mesmo tamanho ou menor do que a partição de destino (Ex: /dev/hda2 – 500 MB, /dev/hdb2 – 500 MB), apenas especifique a partição de origem e a partição de destino, sendo que um diretório também pode ser usado como destino.

Onde /dev/hda2 é partição do primeiro disco /dev/hda, e /dev/hdb2 é partição do segundo disco /dev/hdb

Atenção! Para fazer o copia, as partições não podem estar montadas, onde você pode verificar com o comando df

Obs – o comando abaixo pode demorar um pouco dependendo do tamanho da partição

# dd if=/dev/hda2 of=/dev/hdb2 bs=1M

Ou você pode também especificar um outro local com bastante espaço para armazenar a copia da partição, e ainda usar o compactador gzip para comprimir o tamanho do arquivo.

# dd if=/dev/hda2 of=/home/backup/arquivo bs=1M

ou usando o comando gzip

# dd if=/dev/hda2 | gzip > /home/backup/arquivo.gz

(10)

Restaurando backup da partição

Onde /home/backup/arquivo é o arquivo de backup da partição /dev/hda2, e /dev/hdb2 é a segunda partição

# dd if=/home/backup/arquivo of=/dev/hdb2 bs=1M

Ou usando o comando gzip

# gzip -dc /home/backup/arquivo.gz | dd of=/dev/hdb2 bs=1M

Dump – backup incremental para sistema de arquivos ext2/ext3

A maneira mais comum de criar e restaurar backups é usando os comandos dump e restore, sendo necessário a sua instalação em sistemas Linux / Unix, por exemplo o comando abaixo instala o pacote dump em sistemas Debian.

# apt-get install dump

Criando dump em sistema de arquivos

Dump cria uma lista de arquivos que forma alterados desde o último backup com dump, e encompcta estes arquivos em um único arquivo para ser armazenado em um dispositivo.

Dump possui várias vantagens em relação aos outros comandos mostrados acima tar, cpio e dd, algumas vantagens são:

(11)

Backup incremental (com apenas os arquivos modificados recentemente)

Arquivos de qualquer tipo (incluindo dispositivos)

Preservação de permissões, propriedades, data e horários de modificação

O comando tar possui também estes recursos, portanto dump é um pouco mais sofisticado e pode ser útil em casos mais complexos e caso você deseje fazer backups entre sistemas Linux e Unix, dump é a melhor opção.

O comando dump possui varias opções, onde a primeira opção que deve ser especificada é o nível de backup que pode ser um número de 0 a 9, sendo que o número 0 faz um backup de todo o sistema de arquivos e os números de 1 a 9 são usados para backups incrementais, ou seja se você executar o dump por exemplo com a opção 1, ele irá fazer backup apenas dos arquivos que foram alterados desde o último backup realizado neste caso com a opção 0.

O primeiro backup sempre deve ser realizado iniciando com o nível 0, por exemplo, você pode fazer backup uma vez por semana iniciando no nível 0 e nos demais dias da semana um backup incremental usando o nível 1, assim garantindo que você possui sempre um backup atualizado.

Assim você pode fazer seus backups incrementais facilmente, se você executar o dump na seqüência abaixo:

1º dia – nível 0

2º dia – nível 1

3º dia – nível 2

4º dia – nível 3

5º dia – nível 4

6º dia – nível 5

7º dia – nível 6

8º dia – nível 7

9º dia – nível 8

10º dia – nível 9

11º dia – nível 0

(12)

Por exemplo, se for usado o nível de 5, os arquivos depois do nível de 4 serão atualizados e gravados no nível 5

A opção -u diz para o dump atualizar automaticamente o arquivo /var/lib/dumpdates (Debian) ou /etc/dumpdates (use os comandos updatedb e locate para localizar) quando o dump é executado gravando a data, o nível do dump e o sistema de arquivos. Caso não seja usado a opção -u, o dump será realizado no nível 0 e não será gravado nenhum registro de informação no arquivo dumpdates.

Abaixo segue um trecho do arquivo /var/lib/dumpdates

/dev/hdc1 0 Fri May 9 12:53:54 2008 -0300

A sintaxe do comando dump é:

dump opções parâmetros sistema_arquivos Abaixo seguem algumas opções do comando dump:

0-9 - Nível do dump de 0 a 9

B - O número de blocos de 1K por volume

b - Informa ao dump o número KB por bloco, o valor máximo é 1024

f - Especifica o arquivo de saída, informando ao dump onde gravar o backup, podendo ser uma fita (/dev/st0), um disquete (/dev/fd0), um diretório local ou remoto (/backup) e etc.

d – Especifica a densidade fita, o padrão é 1600BPI

s - Informa ao dump o comprimento da fita, o comprimento padrão é 2300

u - Informa ao dump que ele deve atualizar o arquivo /var/lib/dumpdates ou /etc/dumpdates após sua execução

T - Especifica a data que será gravada no arquivo dumpdates

W - Exibe o sistema de arquivos nos arquivos /var/lib/dumpdates ou /etc/dumpdates e /etc/fstab marcados para dump

w – É semelhante a opção -W, mas somente exibe o sistema de arquivos nos arquivos /etc/fstab e /etc/mtab nos quais precisam ser feito dump

- Parâmetros

Especifica o parâmetro correspondente a opção na seqüência. Por exemplo, se a opção “0usbf” é usada, abaixo seguem os parâmetros que devem ser na seguinte ordem:

# dump -0udsbf 1600 2300 1024 /dev/st0 /var

Onde a opção 0 especifica que não é incremental e é o primeiro backup, a opção u atualiza o arquivo dumpdates, e as opções dsbf correspondem a densidade, comprimento, número de blocos e o arquivo de saída da fita para gravar o backup.

(13)

- Sistema de arquivos

É o ponto de montagem (/home) ou nome de dispositivo (/dev/hda2) do sistema de arquivos para dump localizado no arquivo /etc/fstab como mostra o exemplo abaixo.

# /etc/fstab

# <file system> <mount point> <type> <options> <dump> <pass>

proc /proc proc defaults 0 0

/dev/hda1 / ext3 defaults,errors=remount-ro 0 1

/dev/hda2 /home ext3 defaults,errors=remount-ro,usrquota,grpquota 0 1 /dev/hda3 none swap sw 0 0

/dev/hdb /media/cdrom0 udf,iso9660 user,noauto 0 0 Exemplo:

O exemplo abaixo faz o backup com dump do diretório /home dos usuários no diretório /backup no arquivo arquivo.bak

# mkdir /backup

# dump -0u -f /backup/arquivo.bak /home ou

# dump -0u -f /backup/arquivo.bak /dev/hda2

Restore – restaura arquivos ou sistema de arquivos de backup com dump

É o comando usado para restaurar arquivos criados pelo comando dump, dentre as opções mais úteis do comando restore, destacamos a opção -i para restauração interativa de arquivos e diretórios individuais e -r para a restauração completa de um sistema de arquivos inteiro.

A sintaxe do restore é:

restore opções parâmetros

As principais opções do comando restore são:

-v – Exibe mensagens

-f – Informa o arquivo de onde o restore deve ler os dados.

(14)

-r –Restaura um sistema de arquivos inteiro no diretório corrente de destino

-R – Esta opção é útil se a restauração for interrompida e exibe um resume completo

-t – Lista o arquivos dentro do arquivo de backup

-C – Compara os arquivos do backup com os arquivos do sistema de arquivos

-T – Especifica um arquivo temporário

-x – Somente os arquivos especificados são extraídos do arquivo de backup

-f – Especifica o arquivo de backup

-h – Restaura somente o diretório corrente quando especificado

-y – Não faz perguntas de erros

-s - Especifica o número da posição do arquivo no backup

i – Inicia o restore em modo interativo de arquivos específicos

Quando usada a opção -i em modo interativo, o comando restore irá ler as informações dos diretórios do backup e apresentar um shell de comandos que são mostrados abaixo:

add – adiciona um diretório ou arquivo especificado para ser restaurado, onde serão precedidos com um asterisco *

ls - Lista os arquivos de um diretório

cd - Muda de diretório

pwd – Exibe o diretório corrente

delete – Exclui um diretório ou arquivo especificado a ser excluído da restauração

extract – Todos os arquivo ou diretórios adicionados com o comando add, serão restaurados do backup

help – Exibe ajuda

quit – Sai do restore

Exemplos:

O exemplo abaixo faz um teste antes exibindo os arquivos com a opção -t

# restore -tvf /backup/arquivo.bak

Primeiramente escolha a partição a ser usada para restaurar o backup e lembre-se de verificar se o sistema de arquivos é ext2/ext3, onde você pode criar facilmente com os comandos mkfs.ext3 ou mke2fs, e lembre-se de que criando o sistema de arquivos, a partição será formatada e os dados perdidos.

(15)

# mkfs.ext3 /dev/hdb1 ou

# mke2fs -j /dev/hdb1

Depois monte o sistema de arquivos com mount e acesse o diretório com cd para restaurar o backup.

# mount /dev/hdb1 /mnt

# cd /mnt

Restaura todos os arquivos do arquivo de backup /backup/arquivo.bak usando a opção -r e especificando o diretório corrente (/mnt) ou omitindo o diretório corrente.

# cd /mnt

# restore -rvf /backup/arquivo.bak /mnt ou

# restore -rvf /backup/arquivo.bak

O exemplo abaixo entra em modo interativo usando a opção -i, onde será adicionado para restauração o diretório arquivos com o comando add e depois restaurado com o comando extract e que será perguntado o número do volume do próximo dump, caso inicie o dump no nível 0 o próximo será 1. Após isso será perguntado se deseja preservar as permissões e proprietário onde você deve escolher “y”.

# cd /mnt

(16)

# restore -ivf /backup/arquivo.bak /mnt

Verify tape and initialize maps Input is from a local file/pipe Input block size is 32

Dump date: Fri May 9 13:15:25 2008

Dumped from: the epoch

Level 0 dump of /mnt on debian:/dev/hdc1

Label: none

Extract directories from tape Initialize symbol table.

restore >ls # exibe os arquivos e diretórios

.:

2 ./ 1641 arquivos/ 12 teste 2 ../ 11 lost+found/

restore >add arquivos # adciona o diretório arquivos

Make node ./arquivos

Make node ./arquivos/documentos

restore >ls # repare um asterisco * antes do diretório arquivos, marcado para ser restaurado

.:

2 ./ 1641*arquivos/ 12 teste 2 ../ 11 lost+found/

restore > extract # restaura o diretório arquivos

Extract requested files

You have not read any volumes yet.

Unless you know which volume your file(s) are on you should start

(17)

with the last volume and work towards the first.

Specify next volume # (none if no more volumes):1 # especifique o próximo volume, neste caso “1”, pois foi o dump foi iniciado no nível “0”

extract file ./arquivos/file1.txt extract file ./arquivos/file2.txt Add links

Set directory mode, owner, and times.

set owner/mode for '.'? [yn]y # escolha “y” para preservar as permissões e proprietário restore > quit # digite “quit” para sair do restore

Referências

Documentos relacionados

Qualquer intervenção efetuada no equipamento exige absolutamente a desconexão da tomada elétrica e, portanto, nenhuma proteção (grade, carter) deve ser removida por pessoal não

9 Para fazer backup de arquivos do banco de dados Microsoft SQL Server e restaurá-los, é recomendável usar os utilitários de backup e restauração internos pertencentes ao SQL..

A entrevista com dona Maria Emerenciana foi feita juntamente com suas irmãs, Adalgisa Lima e Lourdes Lima Neves dos Santos Elas construíram suas narrativas com base na

Depois de abrir o HP SimpleSave, ele automaticamente começa a fazer o backup dos tipos de arquivos mais comuns no HD principal do seu computador.. Para alterar as opções de

Transferência em ônibus para a fazenda San Rafael para almoço e visita da sua plantação de cação.. Continuação em Trem até a estação de Yaguachi, onde se trocará a

 Segurança do produto ou processo e proteção ambiental, devido ao cumprimento das obrigações legais, além lançar no mercado um produto diferenciado, possibilitando

A utilização de um instrumento genérico de avaliação de QVRS, o SF-36, e a comparação com um grupo controle possibilitaram confirmar a hipótese de que os

Já no estudo de Rigobello et.al.(2013), que avaliou a qualidade e perfil de dissolução de comprimidos de cloridrato de propranolol, as 6 formulações testadas atenderam as