Os três mais utilizados programas de backup são dump(8), tar(1), e cpio(1).
Os programas tradicionais de backup do UNIX® são o dump e o restore. Eles operam a controladora como se esta fosse uma coleção de blocos de discos, abaixo da abstração de arquivos, links e diretórios que são criadas pelos sistemas de arquivos. O dump realiza o backup de todo um sistema de arquivos em um dispositivo. Ele não tem habilidade de realizar backup somente de uma parte de um sistema de arquivos ou uma árvore de diretórios que envolva mais de um sistema de arquivos. O dump não grava os arquivos em diretórios numa fita, ele grava tudo de maneira direta (raw) em blocos de dados que compõe os arquivos e diretórios.
Nota: Se você utilizar o dump no seu diretório root, você não realizaria o backup do /home, /usr e muitos outros subdiretórios desde que estes sejam tipicamente pontos de montagem para outros sistemas de arquivos, ou ainda links entre estes sistemas de arquivos.
O dump tem uma artimanha que vem desde primeiros dias na Versão 6 do AT&T UNIX (aproximadamente 1975). Os parâmetros padrões são adequados para fitas de 9 trilhas (6250 bpi), não para as mídias de alta-densidade disponíveis hoje em dia (up to 62,182 ftpi). Estes padrões devem ser sobreescritos na linha de comando para que seja utilizada a capacidade das atuais controladoras de fita.
Também é possível realizar backup dos dados através da rede para um dispositivo de backup conectado em um outro computador com o rdump e o rrestore. Ambos os programas tem sua confiança baseadas no rcmd e no ruserok para o acesso à controladora de fita remota. Portanto, o usuário que irá realizar o backup deverá estar listado no arquivo .rhosts no computador remoto. Os argumentos para o rdump e para o rrestore devem ser adequados para o computador remoto. Quando estiver fazendo o rdump de um computador com FreeBSD para uma controladora de fita Exabyte conectada numa estação Sun chamada komodo, use:
# /sbin/rdump 0dsbfu 54000 13000 126 komodo:/dev/nsa8 /dev/da0a 2>&1
Cuidado: há implicações na segurança do sistema permitir a autenticação pelo .rhosts. Avalie a sua situação cuidadosamente.
Também é possível utilizar o dump e o restore numa confecção mais segura através do ssh.
O tar(1) também tem sua data de volta a Versão 6 of AT&T UNIX (aproximadamente 1975). O tar opera em cooperação com o sistema de arquivos; o tar grava os arquivos e diretórios na fita. O tar não suporta a gama enorme de opções disponíveis no cpio(1), mas o tar não requere o pouco usual esquema de comandos com redirecionamento que o cpio usa.
A maioria das versões do tar não suportam backups através da rede. A versão GNU do tar, que é a versão utilizada pelo FreeBSD, suporta dispositivos remotos utilizando a mesma sintaxe do rdump. Para utilizar o tar de um computador com FreeBSD para uma controladora de fita Exabyte conectada numa estação Sun chamada komodo, use:
# /usr/bin/tar cf komodo:/dev/nsa8 . 2>&1
Para as versões sem suporte a dispositivos remotos, é possível usar um redirecionamento com o rsh para enviar os dados para uma controladora de fita remota.
# tar cf - . | rsh hostname dd of=tape-device obs=20b
Se você está preocupado com a segurança no que envolve realizar backups através da rede você deveria utilizar o ssh ao invés do rsh.
O cpio(1) é o programa original do UNIX para a troca de arquivos entre máquinas por meio de mídias magnéticas. O cpio tem opções (entre muitas outras) de realizar byte-swapping, gravando um bom número de sistemas de arquivos de diferentes formatos, e permitindo o redirecionamento dos dados para outros programas. Esta última funcionalidade faz do cpio uma excelente escolha para criar mídias de instalações. O cpio não sabe como andar nos diretórios da árvore de diretórios e uma lista dos arquivos deve ser passada através da stdin.
Ocpio não suporta a realização de backups através da rede. Você pode utilizar um redirecionamento e o rsh para enviar os dados para uma controladora de fita remota.
# for f in directory_list; do find $f >> backup.list done # cpio -v -o --format=newc < backup.list | ssh user@host "cat > backup_device"
Onde o directory_list é a lista de diretórios que você quer adicionar ao seu backup, user@host é a combinação usuário/computador que irá realizar o backup, e backup_device é onde os backups devem ser escritos (e.g., /dev/nsa0).
O pax(1) é a resposta do IEEE/POSIX® para o tar e o cpio. Sobre os anos de várias versões do tar e do cpio estão algumas incompatibilidades. Então para sair da briga pela padronização completa deles, o POSIX criou um novo utilitário de arquivação. O pax tenta ler e gravar nos mais mais variados formatos tanto do cpio quanto do tar, adicionado novos formatos por si, inclusive. Sua maneira de comandar é mais semelhante ao cpio que ao tar.
O Amanda (Advanced Maryland Network Disk Archiver) é um sistema de backup cliente/servidor, melhor que um único programa. Um servidor Amanda irá realizar numa única controladora de fita o backup de qualquer número de computadores que tenham o cliente do Amanda e uma conexão de com o servidorAmanda. Um problema comum em locais com um grande número de discos é que a quantidade de tempo requerida para o backup dos dados diretamente na fita excede a quantidade de tempo para a tarefa. O Amanda resolve este problema. O Amanda pode utilizar um disco auxiliar para realizar o backup de diversos sistemas de arquivos ao mesmo tempo. O Amanda cria ``conjuntos de arquivos '': um grupo de fitas utilizadas sobre o tempo para criar os bsackups completos de todos os sistemas de arquivos listados no arquivo de configuração do Amanda. O ``conjunto de arquivos'' também pode conter backups incrementais (ou diferenciais) noturnos de todos os sistemas de arquivos. Para restaurar um sistema de arquivos é necessário o backup completo mais recente e os incrementais.
O arquivo de configurações provê um controle total da realização dos backups e do tráfico de rede que o Amanda gera. O Amanda utilizará qualquer um dos programas de backup citados para gravar os dados nas fitas. O Amanda está disponível também como um port ou como pacote, porém ele não é instalado por padrão.
``Não fazer nada'' não é um programa de computador mas sim a mais utilizada estratégia de backup. Não há custos iniciais. Não há um agendamento de backup a ser cumprido. Apenas diga não. Se alguma coisa acontecer aos seus dados dê um sorriso malicioso e dê cria neles!
Se seu tempo e seus dados são um pouquinho mais que nada, então ``Não fazer nada'' é o mais adequado programa de backup para o seus computados. Mas cuidado, o UNIX é uma ferramenta útil, você deve encontrar num intervalo de seis meses uma coleção de arquivos que tenham valor para você.
``Não fazer nada'' é o método de backup correto para /usr/obj e outras árvores de diretórios que podem ser criadas exatamente como eram no seu computador. Um exemplo são os arquivos HTML ou PostScript® das versões deste Handbook. Estes documentos foram criados de arquivos no formato SGML. Criar backups deles não é necessário. Os arquivos SGML tem backups realizados regularmente.
A vez é do dump(8), pelos resultados obtidos do torturantes testes que Elizabeth D. Zwicky fez a todos os programas discutidos aqui. A escolha limpa para preservar todos os seus dados e suas peculiaridades do sistema de arquivos UNIX é o dump. Elizabeth criou um sistema de arquivos contendo uma grande variedade de condições não usuais (e algumas nem tão pouco usuais assim) e realizou testes em cada um dos programas realizando backup e restaurando o sistema de arquivos criado. As peculiaridades incluídas: arquivos com buracos, arquivos buracos e blocos nulos, arquivos com caracteres engraçados e estranhos em seus nomes, arquivos que não podem ser lidos ou gravados, arquivos de dispositivos, arquivos que mudam de tamanho durante o backup, arquivos que são criados e apagados durante o backup entre outros. Ela apresentou os resultados na LISA V em outubro de 1991. Visite torture-testing Backup and Archive Programs.
Existem pelo menos quatro passos que são necessários para preparar caso ocorra um desastre..
Primeiro, imprima os rótulos de discos de cada um dos discos que você possui (e.g. disklabel da0 | lpr), sua tabela de sistemas de arquivos (/etc/fstab) e todas as mensagens de inicialização, isso tudo em duas cópias.
Segundo, determine quais serão os disquetes de boot e de manutenção (boot.flp e fixit.flp), tendo todos os arquivos para os seus dispositivos. A maneira mais fácil de verificar é reiniciar sua máquina com o disquete de boot na unidade e checar as mensagens emitidas. Se todos os arquivos de dispositivos são listados e funcionais, passe ao passo três.
Senão, você terá que criar dois disquetes de boot personalizados contendo um kernel que possa montar todos os seus discos e acessar a fita de backup na controladora. Este disquetes devem conter: fdisk, disklabel, newfs, mount, e qualquer programa de backup, de preferência o que você usa. Este programas deverão ser gerados de maneira estática. Se você utilizar o dump, o disquete deverá conter o restore.
Terceiro, crie backups nas fitas regularmente. Qualquer mudança que for feita após o último backup será perdida. Proteja as fitas de backup ativando a trava contra gravação.
Quanto, teste os disquetes (mesmo o boot.flp e o fixit.flp ou od dois disquetes de boot personalizados que você fez no segundo passo.) e as fitas de backup. Tome nota do processo. Guarde estas notas com o disquete bootável, as etiquetas e as fitas de backup. Você poderá estar tão perturbado no momento da restauração que as notas irão prevenir que você destrua as fitas de backup (Como? no lugar de tar xvf /dev/sa0, você acidentalmente digita tar cvf /dev/sa0 e sobreescreve sua fita de backup).
Para adicionar segurança ao processo, faça disquetes inicializáveis e duas fitas de backup por vez. Armazene cada uma delas em locais remotos diferentes. Um local remoto não é no subsolo do mesmo prédio. Um certo número de empresas no World Trade Center aprendeu esta lição do modo mais difícil. Um local remoto deve ser fisicamente separado de computadores e discos por uma distância significante.
Exemplo 12-2. Um Script para a criação de disquetes de inicialização
#!/bin/sh # # Criar um disquete para restauração # # Formatar o disquete # PATH=/bin:/sbin:/usr/sbin:/usr/bin fdformat -q fd0 if [ $? -ne 0 ] then echo "Disquete problemático, insira um novo" exit 1 fi # Colocar os blocos de boot no disquete # disklabel -w -B /dev/fd0c fd1440 # # Criar a partição no disquete # newfs -t 2 -u 18 -l 1 -c 40 -i 5120 -m 5 -o space /dev/fd0a # # Montar o novo disquete # mount /dev/fd0a /mnt # # Criar diretórios necessários # mkdir /mnt/dev mkdir /mnt/bin mkdir /mnt/sbin mkdir /mnt/etc mkdir /mnt/root mkdir /mnt/mnt # Para a partição root mkdir /mnt/tmp mkdir /mnt/var # # Popular os diretórios # if [ ! -x /sys/compile/MINI/kernel ] then cat << EOM O kernel MINI não existe, por favor, crie um. Veja aqui um exemplo para o arquivo de configuração: # # MINI -- Um kernel para usar o FreeBSD num disquete. # machine "i386" cpu "I486_CPU" ident MINI maxusers 5 options INET # needed for _tcp _icmpstat _ipstat # _udpstat _tcpstat _udb options FFS #Berkeley Fast File System options FAT_CURSOR #block cursor in syscons or pccons options SCSI_DELAY=15 #Be pessimistic about Joe SCSI device options NCONS=2 #1 virtual consoles options USERCONFIG #Allow user configuration with -c XXX config kernel root on da0 swap on da0 and da1 dumps on da0 device isa0 device pci0 device fdc0 at isa? port "IO_FD1" bio irq 6 drq 2 vector fdintr device fd0 at fdc0 drive 0 device ncr0 device scbus0 device sc0 at isa? port "IO_KBD" tty irq 1 vector scintr device npx0 at isa? port "IO_NPX" irq 13 vector npxintr device da0 device da1 device da2 device sa0 pseudo-device loop # required by INET pseudo-device gzip # Exec gzipped a.out's EOM exit 1 fi cp -f /sys/compile/MINI/kernel /mnt gzip -c -best /sbin/init > /mnt/sbin/init gzip -c -best /sbin/fsck > /mnt/sbin/fsck gzip -c -best /sbin/mount > /mnt/sbin/mount gzip -c -best /sbin/halt > /mnt/sbin/halt gzip -c -best /sbin/restore > /mnt/sbin/restore gzip -c -best /bin/sh > /mnt/bin/sh gzip -c -best /bin/sync > /mnt/bin/sync cp /root/.profile /mnt/root cp -f /dev/MAKEDEV /mnt/dev chmod 755 /mnt/dev/MAKEDEV chmod 500 /mnt/sbin/init chmod 555 /mnt/sbin/fsck /mnt/sbin/mount /mnt/sbin/halt chmod 555 /mnt/bin/sh /mnt/bin/sync chmod 6555 /mnt/sbin/restore # # Criar os nós de dispositivos # cd /mnt/dev ./MAKEDEV std ./MAKEDEV da0 ./MAKEDEV da1 ./MAKEDEV da2 ./MAKEDEV sa0 ./MAKEDEV pty0 cd / # # Criar a tabela de sistema de arquivos mínimo # cat > /mnt/etc/fstab <<EOM /dev/fd0a / ufs rw 1 1 EOM # # Criar um arquivo passwd mínimo # cat > /mnt/etc/passwd <<EOM root:*:0:0:Charlie &:/root:/bin/sh EOM cat > /mnt/etc/master.passwd <<EOM root::0:0::0:0:Charlie &:/root:/bin/sh EOM chmod 600 /mnt/etc/master.passwd chmod 644 /mnt/etc/passwd /usr/sbin/pwd_mkdb -d/mnt/etc /mnt/etc/master.passwd # # Desmontar o disquete e informar ao usuário # /sbin/umount /mnt echo "O disquete foi desmontado e esta pronto para o uso."
A questão chave é: seu equipamento sobreviveu? Você tem realizado backups regulares para não se preocupar com problemas de software.
Se o equipamento foi danificado, as partes danificadas devem ser trocadas antes de tentar usar o computador.
Se seu equipamento está funcional, verifique seus disquetes. Caso você esteja utilizando um disquete inicializável personalizado, entre no sistema em modo mono-usuário (digite -s no prompt boot:). Passe adiante no próximo parágrafo.
Se você estiver utilizando os disquetes boot.flp e fixit.flp, continue lendo. Insira o disquete boot.flp na primeira unidade de disquetes e realize o boot no computador. O menu de instalação original aparecerá na tela. Selecione a opção Fixit--Repair mode with CDROM or floppy.. Insera o disquete fixit.flp quando for solicitado. O restore e outros programas que você precisa estão localizados em /mnt2/stand.
Restaurar cada sistema de arquivos separadamente.
Tente o mount (e.g. mount /dev/da0a /mnt) na partição raiz do seu primeiro disco Se o seu rótulo de dsico foi danificado, use o disklabel para reparticionar e rotular o disco da mesma maneira que você tem salva e impressa. Use o newfs para recriar os sistemas de arquivos. Remonte a partição raiz do disquete com direitos de gravação(mount -u -o rw /mnt). Utilize seu programa e fitas de backup para restaurar os dados dos sistemas de arquivos (e.g. restore vrf /dev/sa0). Desmonte o sistema de arquivos (e.g. umount /mnt). Repita o processo para cada um dos sistemas de arquivos danificados.
Uma vez que seu sistema está em execução, realize backup dos seus dados em novas fitas. Qualquer parada ou perda de dados pode acontecer novamente sem que a causa seja conhecida. Gastar mais uma hora agora pode salvá-lo do estresse mais tarde.
Anterior | Principal | Próxima |
Backups em Disquetes | Acima | Rede, Memória, e Sistemas de Arquivos em Imagens |
Este, e outros documentos, podem ser obtidos em ftp://ftp.FreeBSD.org/pub/FreeBSD/doc/.
Para perguntas sobre FreeBSD, leia a documentação antes de contatar <questions@FreeBSD.org>.
Para perguntas sobre esta documentação, envie e-mail para <doc@FreeBSD.org>.