17.8. Noções Básicas de Backup
Anterior | Capítulo 17. Armazenamento | Próxima

## 17.8. Noções Básicas de Backup

A implementação de um plano de backup é essencial para que seja possível recuperar de uma falha de disco, exclusão acidental de arquivos, corrupção aleatória de arquivos ou destruição completa da máquina, incluindo a destruição de backups no local.

O tipo e a programação do backup variam, dependendo da importância dos dados, da granularidade necessária para as restaurações de arquivos e da quantidade de tempo de inatividade aceitável. Algumas técnicas de backup possíveis incluem:

- Arquivos de todo o sistema, protegidos por meio de backups em mídias permanentes, armazenados off-site. Isso fornece proteção contra todos os problemas listados acima, mas é lento e inconveniente para restaurar, especialmente para usuários sem privilégios.

- Snapshots do sistema de arquivos, que são úteis para restaurar arquivos excluídos ou versões anteriores de arquivos.

- Cópias de sistemas de arquivos inteiros ou discos que são sincronizados com outro sistema na rede usando um net/rsync agendado.

- RAID por hardware ou software, que minimiza ou evita paralisações quando um disco falha.

Normalmente, uma mistura de técnicas de backup é usada. Por exemplo, pode-se criar um agendamento semanal para automatizar um backup completo do sistema e armazená-lo off-site e para suplementá-lo, snapshots do ZFS tirados a cada hora. Além disso, é possível fazer um backup manual de diretórios ou arquivos individuais antes de fazer edições ou exclusões de arquivos.

Esta seção descreve alguns dos utilitários que podem ser usados ​​para criar e gerenciar backups em um sistema FreeBSD.

### 17.8.1. Backups do Sistema de Arquivos

Os programas tradicionais UNIX® para fazer backup de um sistema de arquivos são dump(8), que cria o backup, e restore(8), que restaura o backup. Esses utilitários funcionam no nível do bloco do disco, abaixo das abstrações dos arquivos, links e diretórios criados pelos sistemas de arquivos. Ao contrário de outros softwares de backup, `dump` faz backup de todo um sistema de arquivos e não é capaz de fazer backup de apenas parte de um sistema de arquivos ou de uma árvore de diretórios que abrange vários sistemas de arquivos. Em vez de gravar arquivos e diretórios, `dump` grava os blocos de dados brutos que compreendem arquivos e diretórios.

### Nota:

Se o `dump` for usado no diretório raiz, ele não fará o backup de `/home`, `/usr` ou de muitos outros diretórios, pois eles são tipicamente pontos de montagem para outros sistemas de arquivos ou links simbólicos nesses sistemas de arquivos.

Quando usado para restaurar dados, `restore` armazena arquivos temporários em `/tmp/` por padrão. Ao usar um disco de recuperação com um pequeno `/tmp`, configure `TMPDIR` para um diretório com mais espaço livre para que a restauração seja bem-sucedida.

Ao usar `dump`, esteja ciente de que algumas peculiaridades permanecem desde seus primeiros dias na versão 6 do AT&T UNIX®, por volta de 1975. Os parâmetros padrão assumem um backup para uma fita de 9 faixas, em vez de para outro tipo de mídia ou para as fitas de alta densidade disponíveis atualmente. Esses padrões devem ser substituídos na linha de comando.

É possível fazer backup de um sistema de arquivos pela rede para outro sistema ou para uma unidade de fita conectada a outro computador. Enquanto os utilitários rdump(8) e rrestore(8) possam ser usado para este propósito, eles não são considerados seguros.

Em vez disso, pode-se usar `dump` e `restore` de uma maneira mais segura em uma conexão SSH. Este exemplo cria um backup completo e compactado de `/usr` e envia o arquivo de backup para o host especificado em uma conexão SSH.

Exemplo 17.1. Usando `dump` sobre ssh

    # /sbin/dump -0uan -f - /usr | gzip -2 | ssh -c blowfish \
              targetuser@targetmachine.example.com dd of=/mybigfiles/dump-usr-l0.gz

Este exemplo configura `RSH` para gravar o backup em uma unidade de fita em um sistema remoto através de uma conexão SSH:

Exemplo 17.2. Usando o `dump` sobre ssh com o `RSH` configurado

    # env RSH=/usr/bin/ssh /sbin/dump -0uan -f targetuser@targetmachine.example.com:/dev/sa0 /usr

### 17.8.2. Backups de Diretório

Vários utilitários integrados estão disponíveis para backup e restauração de arquivos e diretórios especificados, conforme necessário.

Uma boa alternativa para fazer backup de todos os arquivos em um diretório é o tar(1). Este utilitário remonta à versão 6 do AT&T UNIX® e, por padrão, assume um backup recursivo para um dispositivo de fita local. Redirecionadores podem ser utilizados para especificar o nome de um arquivo de backup.

Este exemplo cria um backup compactado do diretório atual e o salva no arquivo `/tmp/mybackup.tgz`. Ao criar um arquivo de backup, verifique se o backup não está salvo no mesmo diretório em que está sendo feito backup.

Exemplo 17.3. Fazendo Backup do Diretório Atual com o `tar`

    # tar czvf /tmp/mybackup.tgz .

Para restaurar o backup inteiro, `cd` no diretório para restaurar e especificar o nome do backup. Observe que isso sobrescreverá qualquer versão mais nova de arquivos no diretório de restauração. Em caso de dúvida, restaure para um diretório temporário ou especifique o nome do arquivo dentro do backup a ser restaurado.

Exemplo 17.4. Restaurando o Diretório Atual com o `tar`

    # tar xzvf /tmp/mybackup.tgz

Existem dezenas de opções disponíveis, descritas em tar(1). Esse utilitário também suporta o uso de padrões de exclusão para especificar quais arquivos não devem ser incluídos ao fazer backup do diretório especificado ou restaurar arquivos de um backup.

Para criar um backup usando uma lista especificada de arquivos e diretórios, cpio(1) é uma boa escolha. Ao contrário do `tar`, o `cpio` não sabe como percorrer a árvore de diretórios e deve fornecer a lista de arquivos para backup.

Por exemplo, uma lista de arquivos pode ser criada usando `ls` ou `find`. Este exemplo cria uma listagem recursiva do diretório atual que é então canalizado para o `cpio` para criar um arquivo de backup de saída chamado `/tmp/mybackup.cpio`.

Exemplo 17.5. Usando `ls` e `cpio` para Criar um Backup Recursivo do Diretório Atual

    # ls -R | cpio -ovF /tmp/mybackup.cpio

Um utilitário de backup que tenta conectar os recursos fornecidos pelo `tar` e `cpio` é pax(1). Ao longo dos anos, as várias versões do `tar` e do `cpio` tornaram-se ligeiramente incompatíveis. POSIX® criou `pax` que tenta ler e escrever muitos dos vários formatos `cpio` e `tar`, além de novos formatos próprios.

O `pax` equivalente aos exemplos anteriores seria:

Exemplo 17.6. Fazendo Backup do Diretório Atual com `pax`

    # pax -wf /tmp/mybackup.pax .

### 17.8.3. Usando Fitas de Dados para Backups

Embora a tecnologia de fitas tenha continuado a evoluir, os sistemas de backup modernos tendem a combinar backups externos com mídias removíveis locais. O FreeBSD suporta qualquer unidade de fita que use SCSI, como LTO ou DAT. Há suporte limitado para as unidades de fita SATA e USB.

Para dispositivos de fita SCSI, o FreeBSD usa o driver sa(4) e os dispositivos `/dev/sa0`, `/dev/nsa0` e `/dev/esa0`. O nome do dispositivo físico é `/dev/sa0`. Quando `/dev/nsa0` é usado, o aplicativo de backup não rebobina a fita depois de gravar um arquivo, o que permite gravar mais de um arquivo em uma fita. O uso de `/dev/esa0` ejeta a fita após o dispositivo ser fechado.

No FreeBSD, o `mt` é usado para controlar as operações da unidade de fita, como procurar arquivos em uma fita ou gravar marcas de controle na fita. Por exemplo, os três primeiros arquivos em uma fita podem ser preservados, ignorando-os antes de gravar um novo arquivo:

    # mt -f /dev/nsa0 fsf 3

Este utilitário suporta muitas operações. Consulte mt(1) para detalhes.

Para gravar um único arquivo em fita usando `tar`, especifique o nome do dispositivo de fita e o arquivo para backup:

    # tar cvf /dev/sa0 file

Para recuperar arquivos de um arquivo `tar` em fita no diretório atual:

    # tar xvf /dev/sa0

Para fazer backup de um sistema de arquivos UFS, use `dump`. Este exemplo faz o backup de `/usr` sem rebobinar a fita quando terminar:

    # dump -0aL -b64 -f /dev/nsa0 /usr

Para restaurar arquivos interativamente de um arquivo `dump` em fita no diretório atual:

    # restore -i -f /dev/nsa0

### 17.8.4. Utilitários de Backup de Terceiros

A Coleção de Ports do FreeBSD fornece muitos utilitários de terceiros que podem ser usados ​​para agendar a criação de backups, simplificar o backup em fita e tornar os backups mais fáceis e convenientes. Muitos desses aplicativos são baseados em cliente/servidor e podem ser usados ​​para automatizar os backups de um único sistema ou de todos os computadores em uma rede.

Os utilitários populares incluem Amanda, Bacula, rsync e duplicity.

### 17.8.5. Recuperação de Emergência

Além dos backups regulares, é recomendável executar as etapas a seguir como parte de um plano de preparação para emergências.

Crie uma cópia impressa da saída dos seguintes comandos:

- `gpart show`

- `more /etc/fstab`

- `dmesg`

Armazene esta saída e uma cópia da mídia de instalação em um local seguro. Se uma restauração de emergência for necessária, inicialize na mídia de instalação e selecione `Live CD` para acessar um shell de recuperação. Esse modo de recuperação pode ser usado para exibir o estado atual do sistema e, se necessário, reformatar discos e restaurar dados de backups.

### Nota:

A mídia de instalação do FreeBSD/i386 10.4-RELEASE não inclui um shell de recuperação. Para esta versão, baixe e grave uma imagem do Livefs CD de `ftp://ftp.FreeBSD.org/pub/FreeBSD/releases/i386/ISO-IMAGES/10.4/FreeBSD-10.4-RELEASE-i386-livefs.iso`.

Em seguida, teste o shell de recuperação e os backups. Faça anotações do procedimento. Armazene estas notas com a mídia, as impressões e os backups. Estas notas podem impedir a destruição inadvertida dos backups, enquanto sob o estresse de realizar uma recuperação de emergência.

Para uma medida adicional de segurança, armazene o backup mais recente em um local remoto, fisicamente separado dos computadores e das unidades de disco por uma distância significativa.

Anterior | Acima | Próxima
17.7. Criando e Usando Disquetes | Principal | 17.9. Discos de Memória

All FreeBSD documents are available for download at https://download.freebsd.org/ftp/doc/

Questions that are not answered by the documentation may be sent to <freebsd-questions@FreeBSD.org>.
Send questions about this document to <freebsd-doc@FreeBSD.org>.