Nota: Este artigo foi publicado originalmente na edição online da Revista do Linux.
Uma dúvida muito comum entre as novas gerações de administradores Linux que vem sendo formadas na prática, muitas vezes sem treinamento formal, diz respeito aos backups - de fato, esta dúvida não se restringe aos administradores Linux: muitos administradores experientes de outros sistemas operacionais não têm nenhuma intimidade com as fitas DAT/DDS - e nem fazem idéia da simplicidade do manuseio destas jóias da tecnologia.
De fato, é comum vermos usuários perguntando sobre como "montar" a fita - como se ela fosse um disquete ou CD; outros perguntam sobre como formatar a fita. Embora o conceito de formatação até possa ser aplicado a fitas, você certamente não irá criar um sistema de arquivos nela - portanto, você não irá "montá-las" para gravar e ler arquivos nela.
Ao invés disto, utilizamos uma série de utilitários para gravar e ler dados das fitas. Alguns destes utilitários têm como objetivo único o backup - ferramentas especializadas como o BRU Backup, o OmniBack e o Amanda - e outros são ferramentas de uso geral, tradicionais do Unix e que podem ser aplicadas ao backup: mt, dd, dump, restore, tar, cpio, compress, gzip & cia.
Dependendo das suas necessidades, pode valer a pena recorrer a uma ferramenta integrada como o Amanda ou o OmniBack. Se você for um guru do Unix tradicional, provavelmente será capaz de implementar estratégias complexas de backup usando só o find e o cpio. Mas neste artigo não adotaremos nenhuma das duas visões, optando ao invés disso por apresentar os principais componentes básicos do backup em fita, demonstrando um esquema simples de cópia e indicando as fontes de consulta suplementar para orientar a busca por tópicos avançados.
As fitas
Existem várias opções de backup disponíveis no mercado, desde CD-ROMs e discos rígidos adicionais, até modernos sistemas de backup remoto via internet, passando por vários modelos de fitas. Neste artigo analisaremos uma das mídias mais comuns em instalações atuais: as fitas DDS (também chamadas, embora erroneamente, de fitas DAT). Este tipo de mídia tem um custo por megabyte armazenado relativamente baixo, não é muito suscetível a problemas de alinhamento dos drives e é bastante fácil de armazenar, desde que você tome cuidado com as condições ambientais.
Existem várias especificações de fitas DDS, variando desde o padrão original de 2 ou 4 GB por fita, até as modernas DDS-4, com capacidade nominal de 20GB. Se você puder optar, não se deixe impressionar pela diferença no custo dos drives: não há preço que pague a comodidade de poder fazer backups diários completos sem ter de treinar o vigia noturno para trocar fitas na madrugada, como acontece em algumas organizações onde o volume armazenado cresceu mais do que o orçamento dedicado à segurança da informação.
Para o Linux, o seu acionador de fitas será visto como um dispositivo de caracteres - ao contrário dos discos em geral, que são dispositivos de bloco. As unidades DDS em geral contam com interface padrão SCSI, e são tratadas pelo Linux como os dispositivos /dev/st0 (st1, st2 e assim por diante se você tiver múltiplas unidades) ou /dev/nst0. A diferença entre st0 e nst0 é o rebobinamento: quando você acessa sua unidade de fita através da primeira opção, ela irá rebobinar automaticamente após o término da operação, coisa que não ocorre com o nst0 - a letra "n" significa nonrewinding, ou sem rebobinamento.
Um pouco de filosofia
Planejar e executar backups pode ser uma atividade tediosa, até mesmo chata: selecionar o conjunto de diretórios que deverão ser copiados diariamente, lembrar de trocar as fitas nos horários corretos, procurar a fita do mês passado para recuperar aquele arquivo importante que sumiu do diretório de um usuário (subitamente atacado pela síndrome do "eu não mexi em nada!") estão longe de ser as rotinas mais amadas pelos administradores de sistemas.
Ao mesmo tempo, o backup adquire importância crucial nas piores horas. Um comando errado, uma invasão por pessoas não autorizadas, uma enchente ou tempestade e subitamente os seus dados armazenados no servidor não parecem mais tão seguros - e se você não tiver se preocupado com isto antes da tragédia, agora será tarde demais. Backups são parte importante da política de segurança, e você precisa pensar neles como o recurso estratégico que representam, e não como a rotina tediosa que geram.
O primeiro passo é conhecer bem as ferramentas de backup utilizadas. Neste artigo veremos apenas os fundamentos do comando tar, com o qual é possível criar backups bastante avançados - se você no futuro optar por outros softwares de backup, lembre-se de fazer o possível para conhecê-los profundamente antes de vir a precisar deste conhecimento na prática - para evitar surpresas desagradáveis.
O tar é um utilitário de linha de comando cuja sintaxe é bastante flexível - tão flexível a ponto de dificultar a discussão de todas as suas opções em um artigo introdutório como este. Iremos ver algumas das opções mais comuns através de exemplos práticos, mas lembre-se: uma visita ao manual do tar (
www.gnu.org/manual/tar/html_mono/tar.html) é obrigatória para quem realmente quiser utilizar esta ferramenta.
Partindo do princípio
Digamos que você queira gravar todo o conteúdo dos diretórios home dos seus usuários, e todos eles estejam corretamente criados dentro da árvore /home. Sua fita de backup tem capacidade suficiente para armazenar todo o volume necessário, e está inserida em sua unidade de backup SCSI, reconhecida pelo Linux como /dev/st0. O que você tem a fazer é muito simples:
tar -cvf /dev/st0 /home
Este comando gravará todo o conteúdo do diretório /home (incluindo seus subdiretórios) na fita, rebobinando-a em seguida. As opções do tar utilizadas significam:
c - criar um novo arquivo (create)
v - exibir informações sobre a operação (verbose)
f /dev/st0 - gravar em /dev/st0 (file)
/home - o diretório de origem
Pareceu simples demais? Sim, mas estamos apenas começando! Que tal imaginar que além do /home, você tem um diretório /projetos, contendo os arquivos utilizados pelo setor de desenvolvimento da sua empresa, e neste mesmo servidor ainda reside o spool de mail de seus usuários? Neste caso você irá querer fazer o backup de todos os diretórios na mesma fita - ou ensinar o vigia noturno a trocar as fitas para você na madrugada.
Fazer o backup de vários diretórios em uma mesma operação é bastante simples. Em primeiro lugar, crie com seu editor de textos favorito um arquivo contendo a lista dos seus diretórios a ser copiados, um por linha. Por exemplo, vamos considerar que você criou um arquivo chamado /etc/backup_dirs contendo as seguintes linhas:
/home
/projetos
/var/spool/mail
Agora insira a fita, e emita o seguinte comando:
tar -cv -T /etc/backup_dirs -f /dev/st0
e aguarde a cópia ser executada. Para praticamente qualquer situação de backup real, você descobrirá que o tar possui opções adequadas - embora exija uma boa leitura da documentação para se tornar realmente útil.
Após escolher cuidadosamente a lista de diretórios a ser copiada, e gerar duas ou três fitas de teste (certificando-se de que consegue recuperá-las corretamente depois), você já pode inserir os comandos do seu backup na crontab, para que ele seja executado automaticamente em todas as madrugadas, e tudo o que você tenha a fazer seja trocar diariamente as fitas antes de terminar o expediente. Os procedimentos relacionadas à crontab seriam tema suficiente para mais um artigo inteiro, mas ao final deste texto você encontrará algumas referências para pesquisar sobre o assunto.
Recuperando backups
Naturalmente, um backup não serve para nada se você não tiver como recuperá-lo depois (embora todos torçam para nunca precisar recuperar). Recuperar um backup feito com o tar é bastante simples: insira a fita e emita o comando adequado.
Se você quer recuperar apenas um arquivo da fita, a operação exige apenas um comando. Vamos imaginar que a secretária da diretoria notou hoje a falta de um arquivo necessário para uma reunião de amanhã, e você precisa recuperá-lo do backup imediatamente. Eis o comando:
tar -xvf /dev/st0 /home/analucia/pauta.doc
As opções v e f já foram discutidas acima. A opção -x informa ao tar que ele deverá processar a eXtração de um arquivo da fita, e /home/analucia/pauta.doc é o nome do arquivo a ser recuperado. Note que com as versões GNU do tar (que são as que costumam vir incluídas nas distribuições de Linux) por padrão o arquivo não será gravado diretamente em /home/analucia, mas sim em um diretório criado a partir do seu diretório corrente - por exemplo, se você estiver em /root, ele será gravado como /root/home/analucia/pauta.doc - e você terá que movê-lo. Isto ocorre numa tentativa de protegê-lo contra erros (já imaginou sobrescrever todos os seus arquivos por versões de um mês atrás, devido a uma opção errada?), mas pode ser revertido através de opções do próprio tar, se você preferir.
Naturalmente você também pode extrair diversos arquivos de uma só vez (com a opção -T, que vimos acima), a fita inteira (basta não informar o nome de nenhum arquivo após o /dev/st0), diretórios e vários outros subconjuntos - para saber como (não custa repetir) leia o manual do tar diariamente, após as refeições.
Outras opções
Já vimos o básico do backup utilizando o tar, e agora está na hora de citarmos outras ferramentas sobre as quais você pode querer se informar antes de planejar sua política de backups.
Em primeiro lugar, as outras ferramentas tradicionais: o comando mt serve para manipular fitas em geral, permitindo avançá-las, retrocedê-las e ajudando na tarefa de manter mais de um backup diferente gravado na mesma fita (algo que você só deve fazer se realmente precisar muito). A dupla de comandos dump e restore realizam e retornam backups, e estão disponíveis para qualquer versão de Unix que você possa imaginar (assim como o tar e o cpio, seu grande rival).
O Amanda (www.amanda.org) merece menção especial, por ser uma ferramenta de livre distribuição capaz de fazer o mesmo que as ferramentas comerciais caríssima, com uma interface tão simples quanto as delas. Ele realiza facilmente o backup de vários computadores em um único servidor dispondo de uma unidade de fitas (ou outro dispositivo de backup), com transparência e flexibilidade.
Outra ferramenta que merece atenção dos iniciantes é o KDat (sunsite.auc.dk/qweb/kdat/), uma interface gráfica para os comandos tradicionais de backup bastante fácil de usar.
E temos também as ferramentas comerciais: OmniBack, BRU, e muitas outras. A possível vantagem de uma ferramenta comercial é contar com suporte técnico especializado pago e eventualmente com treinamento formal. As demais vantagens apregoadas, tais como a independência de plataforma, suporte a harware moderno e backup centralizado podem ser obtidas com as ferramentas livres.
Conclusão
Chegamos ao fim deste artigo muito longe de esgotar o assunto. Temas como backups diferenciais, incrementais, política de armazenamento de fitas, recuperação de desastres com discos e muitos outros poderiam render explanações capazes de ocupar todo o espaço desta revista, e possivelmente serão abordados em outros artigos no futuro.
Espero ter alcançado o objetivo de demonstrar que backups em fita não envolvem técnicas complexas, estando ao alcance de qualquer administrador de sistemas. Se você tem interesse maior pelo assunto, consulte os links indicados no quadro "Para saber mais", principalmente o livro "Unix Backup & Recovery" - que contém tudo o que você precisa saber sobre cópias de segurança em ambiente Linux.
Para saber mais:
Livro "Unix Backup & Recovery" -
www.backupcentral.com/thebook.html
BRU -
www.bru.com
Manual do tar -
www.gnu.org/manual/tar/html_mono/tar.html
KDat - sunsite.auc.dk/qweb/kdat
Guia do backup com tar e kdat -linuxdoc.org/LDP/lame/LAME/linux-admin-made-easy/c1315.html
Introdução ao Backup -
www.linux-mag.com/cgi-bin/printer.pl?issue=1999-07&article=guru"
Agendando tarefas com o cron -
www.linux.trix.net/dicas_cron.htm