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:

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.

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>.