projetos | download | linux | privacidade | contato
 
  Produtos | Documentação | Suporte | Treinamento | Conectiva | Cases | Soluções | Parcerias | Imprensa | Oportunidades
Pesquise 
português 
english 
español

SUPORTE

->Suporte Estendido
->Centros de Serviços
->Técnicos Certificados
->Formulário de Suporte
->Abrangência do Suporte
->Acionando o Suporte
->Perguntas e Respostas
->Atualizações
->Livros, Guias e Manuais
->Hardware

    2.2. Quais são as ferramentas para backup disponíveis ?



    1. Utilização do aplicativo tar para criação de backups

      Por que usar o tar para backup?

      O método mais simples de se fazer um backup é utilizando o tar para armazenar todos os arquivos do sistema ou apenas os arquivos em um conjunto de diretórios específicos. Utilizando o tar em conjunto com os compactadores gzip (opcão z) ou bzip2 (opcão I), é possível armazenar e compactar os arquivos ao mesmo tempo em um único tarfile.

      A criação de backups utilizando o tar fornece flexibilidade e simplicidade de uso.

      Parâmetros principais:

      -c : criar um novo arquivo tar
      -x : extrai arquivos de um arquivo tar
      -t : lista o conteúdo de um arquivo tar
      -f : usar o arquivo file ou o dispositivo F (padrão /dev/rmt0)
      -z : filtra os arquivos através de gzip
      -I : filtra os arquivos através de Bzip2
      -v : mostra a lista dos arquivos processados
      -M : cria/lista/extrai arquivos multivolumes


    2. Fazendo backups de fita utilizando o tar

      Para criação de backups em fita com o tar, utiliza-se o seguinte comando:

          [root@localhost]# tar -cvf /dev/rft0  /home  /etc
      

      No exemplo acima, é feito o armazenamento em fita dos diretório /home e /etc do sistema, utilizando da compactacão do gzip.

      Obs.: Para utilizar do backup em fita, é necessário que o módulo referente à fita esteja ativado no sistema para reconhecimento do dispositivo.

      Normalmente é necessário, e recomendável, a leitura da fita para verificação de qual backup foi criado e quais os arquivos presentes nele.

      Para listagem destes arquivos em fita, utiliza-se o seguinte comando:

          [root@localhost]# tar -tvf /dev/rft0
      

      Caso o backup seja finalizado sem ocupar todo o espaço disponível em fita, será necessário rebobinar a fita.

      Para isto, execute o seguinte comando:

          [root@localhost]# mt -f /dev/rft0 rewind
      

      Caso não possua o comando mt, instale o pacote relativo ao mesmo:

      Insira o CD1 no drive e como root digite os seguintes comandos:

          
          [root@localhost]# mount /mnt/cdrom
      
          [root@localhost]# cd /mnt/cdrom/conectiva/RPMS
      
          [root@localhost]# rpm -ivh mt-st*
      

      Obs.: Os procedimentos acima consideram /dev/rft0 como padrão de dispositivo de fita.

      Verifique em seu sistema qual dispositivo está sendo utilizado.

    3. Como fazer backup em disquete

      Para criação de backups em disquete, é utilizado o mesmo comando anterior, modificando somente o dispositivo em questão:

          [root@localhost]# tar -cvf /dev/fd0 /home
      

      Múltiplos volumes

      Como o disquete ou fita tem uma capacidade bem limitada de armazenamento, é possível criar armazenamento em _múltiplos volumes_.

      Fornecendo a opção M ao tar, será solicitado um novo volume para continuação doarmazenamento em questão, apenas atentando para a ordem de criacão dos múltiplos volumes:

          [root@localhost]# tar cvMf /dev/fd0 /home /etc
      

      Outra opcão é utilizar do comando split para fragmentar o arquivo em questão e do comando cat para restaurar ao arquivo original.

      Exemplo:

      Considerando um arquivo chamado teste.tar.gz já criado e presente no diretório teste:

          [root@localhost teste]# l
          total 204
          drwxr-xr-x   2 root     root         4096 Jun  5 16:51 ./
          drwxr-x---  24 root     root         4096 Jun  5 16:49 ../
          -rw-r--r--   1 root     root       194041 Jun  5 16:46 teste.tar.gz
      

      Tamanho relativo ao diretório teste:

          [root@localhost teste]# du -hs
          200k
      

      Fragmentar o arquivo em vários pedaços relativamente com o tamanho definido (no exemplo abaixo, 50000 bytes):

          [root@eclipse teste]# split -b 50000 teste.tar.gz
      
          [root@eclipse teste]# l
          total 416
          drwxr-xr-x   2 root     root         4096 Jun  5 16:51 ./
          drwxr-x---  24 root     root         4096 Jun  5 16:49 ../
          -rw-r--r--   1 root     root       194041 Jun  5 16:46 teste.tar.gz
          -rw-r--r--   1 root     root        50000 Jun  5 16:51 xaa
          -rw-r--r--   1 root     root        50000 Jun  5 16:51 xab
          -rw-r--r--   1 root     root        50000 Jun  5 16:51 xac
          -rw-r--r--   1 root     root        44041 Jun  5 16:51 xad
      

      E agora para ter o arquivo inteiro novamente, basta utilizar do comando cat da seguinte maneira:

          [root@localhost teste]# cat xaa xab xac xad > teste2.tar.gz
      

      Obs.: Atente à sequência criada para restauracão do arquivo original.

    4. Criar backups agendados utilizando o cron

      Caso seja necessário criar backups periodicamente, pode-se combinar o servidor de comandos agendados cron com o comando ou script.

      Simplesmente programe a data no cron para execução do determinado comando de criação de backup.

      No exemplo abaixo, o cron está agendado para executar o backup dos diretórios /home e /etc às duas horas da manhã:

          0 2 * * * root          tar cvf /dev/rft0 /home /etc
      

      Maiores informacões:

          [root@localhost]# man crontab
          [root@localhost]# man 5 crontab
      
    5. Scripts de backup

      Utilizar de scripts para o armazenamento de arquivos é muito útil para se obter um backup mais agilizado do sistema.

      Segue abaixo um exemplo de utilizacão de um script de backup.

      Os arquivos são gravados diariamente e enviados via email para uma ou mais máquinas ou pessoas, onde são gravados em um arquivo em disco.

      A automatização via cron, pode ser criada através da inclusão no arquivo /etc/crontab de uma linha como:

          0 0 * * * /usr/local/etc/saveconfig  1> /dev/null 2> /dev/null
      

      Desta forma, todos os dias, as 00:00 horas, o script /usr/local/etc/saveconfig é executado. Para melhor entender o procedimento, encontra-se abaixo o script saveconfig, contendo explicações detalhadas sobre os passos seguidos:

      #!/bin/sh

      #

      # Script para realização de backup de arquivos de

      # configuração

      # via correio eletronico

      #

      PATH=/sbin:/usr/sbin:/bin:/usr/bin:/usr/local/bin

      export PATH

      # A seguir é criado um arquivo no formato tar,

      # contendo todos os arquivos

      # de configuração que se deseja salvar. A lista dos

      # arquivos deve ser

      # criada em conjunto com todos os usuários e

      # administradores da máquina

      # Observar que o arquivo é criado com diretórios

      # relativos, ou seja,

      # iniciados em "." para facilitar a expansão do

      # arquivo tar em qualquer

      # localização.

      # O arquivo tar criado é compactado utilizando-se o

      # programa gzip

      # e redirecionado para o arquivo

      # /tmp/machine.config.tar.gz

      cd /

      tar cvf - \

      ./var/spool/cron \

      ./var/named \

      ./etc/aliases \

      ./etc/dumpdates \

      ./etc/gated.conf \

      ./etc/group \

      ./etc/hostname.le0 \

      ./etc/hostname.le1 \

      ./etc/hosts \

      ./etc/hosts.equiv \

      ./etc/hosts.equiv \

      ./etc/inet \

      ./etc/vfstab \

      ./etc/vold.conf | gzip > /tmp/machine.config.tar.gz

      # Neste ponto, o formato do arquivo é transformado

      # pelo comando

      # uuencode para permitir a sua transferência via mail

      uuencode /tmp/machine.config.tar.gz machine.config.tar.gz \ > /tmp/machine.config.tar.gz.uu

      # Em seguida, o arquivo é enviado para a(s) máquinas

      # de destino

      # onde deverá ser criado um alias que se encarregará

      # de realizar

      # a gravação no local apropriado. Incluir na(s)

      # máquina(s) de destino,

      # no arquivo /etc/aliases, uma linha do tipo:

      # backup: "|/usr/local/bin/deliver -b

      # /usr/local/doc/backups/machine

      #

      # Recomenda-se também a encriptação da mensagem para

      # aumentar

      # a segurança deste esquema visto que informações

      # confidenciais

      # estarão sendo enviadas.

      # O programa deliver é de domínio público e serve

      # para fazer a sincronização

      # de gravação no arquivo de destino, no caso,

      # /usr/local/doc/backups/machine.

      # De tempos em tempos este arquivo deve ser examinado

      # e removidas as mensagens

      # mais antigas (manual ou automaticamente).

      #

      # No nosso exemplo, o arquivo de backup é enviado

      # para o usuário para o alias backup na máquina

      # domínio.com.br.

      mail -s "Configuracao `date +%d/%m` (machine)" usuário backup@domínio.com.br < /tmp/machine.config.tar.gz.uu

      # Finalmente, os arquivos temporários gerados devem

      # ser removidos

      rm /tmp/machine.config.*

    6. ** Script retirado da lista Dicas-L

      Mais informacões sobre crontab:

          [root@localhost]# man crontab
          [root@localhost]# man 5 crontab
      
    7. Utilização do aplicativo cpio para criação de backups

      O comando cpio copia arquivos para ou de um arquivo em formato cpio ou tar, o qual é um arquivo que contém outros arquivos e informações sobre estes, tais como seu nome, dono, data de atualização e permissões de acesso.

      No modo cópia de entrada, o cpio lê uma lista de nome de arquivos, um em cada linha, na entrada padrão ou de um próprio arquivo, e grava-os em um arquivo maior na saída padrão. Uma forma típica de gerar uma lista de arquivos é pelo comando find devendo-se informar o parâmetro -depth para minimizar os problemas com permissões em diretórios que não podem ser gravados ou pesquisados.

      Sintaxe do modo de cópia de entrada:

          cpio -o [parâmetros] < arquivo > saída
      

      No modo cópia de saída, o cpio lê da entrada padrão um arquivo criado com o cpio (modo cópia de entrada) e retira dele aqueles cujo nome combina com o padrão.

      Sintaxe do modo de cópia de saída:

          cpio -i [parâmetros] [padrão] < entrada
      

      Para listar o conteúdo de um arquivo cpio:

          [root@localhost]# cpio -itvf < nome_do_arquivo
      

      Exemplos

      No exemplo abaixo foi criado um arquivo de lista contendo o nome de todos os arquivos presentes no diretório /home. Com o comando cpio, foi criado um arquivo de formato tar contendo os arquivos listados no arquivo lista:

          [root@localhost]# find /home/* -depth > lista
      

      [root@localhost]# cpio -oH tar < lista > backup_home

      No exemplo abaixo, foi utilizado o cpio para copiar todos os arquivos listados no arquivo lista, criado no exemplo anterior, para os diretórios referentes a cada arquivo:

          [root@localhost]# cpio -if lista < backup_home
      

      Utilizando o formato tar, é também possível extrair da seguinte maneira:

          [root@localhost]# tar -xvf backup_home
      

      Mais informacões sobre o cpio:

          [root@localhost]# man cpio
      
    8. Utilizacão do aplicativo dump para criacão de backups

      O comando dump examina arquivos em um sistema de arquivos do tipo ext2 e determina quais arquivos necessitam fazer backups.

      Utilizando o dump, é possível fazer backup em disco, fita ou outro dispositivo para armazenamento.

      Um arquivo dump que ocupa um espaco maior do que o disponível no dispositivo de entrada é quebrado em múltiplos volumes.

      Na maioria das mídias, o arquivo dump terá o tamanho máximo relativo ao final da mídia, quando este parâmetro é retornado. Em mídias que não retornam o seu ponto de final de mídia, os arquivos dump irão possuir um tamanho previamente determinado pelo tamanho da mídia.

      Por padrão, todos os arquivos dump de mesma origem de backup possuem o mesmo nome.

      É possível também utilizar o dump para realizar backup redirecionando este arquivo para uma máquina remota.

      Opcões gerais:

      - f : Realiza backup em arquivo, podendo ser dispositivo de fita, disquete ou arquivo em si.
      - [0-9] : Dump levels - Nível 0 caracteriza um backup completo de todo o sistema de arquivos em questão. Um nível superior a 0 caracteriza backup incremental, relativo a cópia de todos os arquivos novos ou modificados desde o último dump de nível inferior.
      - u : Atualiza o arquivo /etc/dumpdates após a finalização. Arquivo que contém a data o sistema de arquivos e o nível de dump realizado no sistema.


      Exemplos

      No exemplo abaixo, foi feito um backup do diretório / com o comando dump, gravando em um dispositivo de fita:

          [root@localhost]# dump -0uf /backups/becape.bck /home
      

      No exemplo abaixo, é apresentado a sintaxe pra backups em máquina remota. Neste caso, certifique-se que o serviço sshd está ativo nas duas máquinas e se a máquina remota permite conexão como root.Em seguida,emita o comando abaixo, fazendo a modificações necessárias:

          [root@localhost]# dump 0fb - 64 [filesystem] | ssh [máquina remota] '(cd [diretório destino];dd of=[arquivo destino] obs=64b)'
      

      Exemplo:

          [root@localhost /root]# dump 0fb - 64 /home  | ssh máquina_remota  '(cd /backups ; dd of=becape.bck obs=64b)'
      

      No exemplo acima, foi feito um backup do diretório /home utilizando a máquina remota para gravar no diretório /backups o arquivo dump becape.bck.

      Para verificar os arquivos presentes dentro de um arquivo dump:

          [root@localhost]# restore -tvf nome_do_arquivo_dump
      

      Outra opcão, é gravar o backup já compactado utilizando o gzip:

          [root@localhost]# dump -0uf - /root | gzip > /backups/root.bck.gz
      

      E para restaurar:

          [root@localhost]# restore -rvf /backups/root.bck
      

      ou, caso se use a compactação:

          [root@localhost]# gzip -dc /backups/root.bck | restore -rvf -
      

      Mais informacões sobre dump:

          [root@localhost]# man dump
      

      Obs.:

      O programa restore, pertencente ao pacote dump e usado para restaurar backups, possui um buffer overflow. Sendo um programa SUID root, esta falha pode ser explorada por um usuário local para obter privilégios de administrador (root). Além disso ainda restava um problema onde a máquina poderia deixar de responder por alguns segundos ao executar o restore com certos parâmetros.

      Pacotes: i386/dump-0.4b18-1cl.i386.rpm e i386/rmt-0.4b18-1cl.i386.rpm

      Todos os usuários deste programa devem fazer a atualização deste pacote na página de atualizações:

      http://www.conectiva.com.br/atualizações