Skip to main content

206.2 Operações de Backup


Introdução​


Exitem algumas ferramentar para fazer Backup das informações contidas em servidores. Vamos fazer um overview sobre alguns dos métodos mais usados.



Mídias para Backup​


As mídias mais usadas para fazer Backup em ambientes corporativos são:

Prioridade de usoMídia
1Disco
2Fita
3CD/DVD/Blue-Ray
4PenDrive/Cartões

Vejamos as Vantagens e Desvantagens no uso de cada uma.

DiscoVantagemDesvantagem
Velocidade de acessoMenor vida útil
Disponibilidade (online)Mail frágil para transporte
Facilidade de gerenciamento
FitaVantagemDesvantagem
DurabilidadeGravação e Acesso sequencial
Compacta/Fácil TransporteDisponibilidade de Acesso
Custo baixo por GB
Capacidade maior de armazenamento


Tipos de Backup​


Vamos ver os Tipos de Backup que são usados.

  • Backup Full (Backup completo dos dados)

    Aqui temos o Backup completo dos dados. O problema é que o armazenamento cresce muito rápido dependendo do tamanho dos arquivo, vejamos um exemplo:

    Backup 1 = 10GB
    Backup 2 = 10GB
    Backup 3 = 10GB
    Backup 4 = 10GB
    Total de uso = 40GB

    Porém, é muito mais simples de fazer Backup dessa maneira.

  • Backup Incremental ou Diferencial (Backup parcial dos dados)

    Aqui temos o Backup parcial dos dados, ou seja, só é feito Backup dos dados que foram modificados em comparação com o Backup anterior. Dessa maneira o armazenamento não cresce demais, porém, é um pouco mais complexo de ser feito, vejamos um exemplo:

    Backup Full 1 = 10GB
    Backup Incremental 1 do Full 1 = 1GB
    Backup Incremental 2 do Full 1 = 2GB
    Backup Incremental 3 do Full 1 = 1GB
    Total de uso = 14GB

    Demora um pouco mais para recuperar os dados já que tem que recuperar o Full mais os incrementais necessários para chegar na versão do Dado que deseja.



Diretórios para Backup​


Ao fazer Backup sempre temos que considerar fazer backup de alguns diretórios, são eles:

  • /home

    Arquivos dos usuários.

  • /etc

    Configurações do S.O e Aplicações/Serviços

  • var

    Logs e bibliotecas, spool/mail, www entre outros.

  • /usr e /opt

    Software instalados.



Comandos Básicos​


Vamos ver os comandos que podemos usar para fazer Backup:

  • TAR

    Um método muito bom para agrupar os arquivos para então serem comprimidos. Vejamos algumas opções interessantes ao trabahar com Backup:

    --exclude=file - Muito bom para excluir alguns arquivos/diretórios do Backup; --incremental ou -G - Faz agrupamento apenas dos dados que foram modificados. --listed-incremental=file - Grava o que foi incrementado e outras informações.

    Para fazer o agrupamento com tar para um diretório comum:
    tar -cvf etc.tar /etc

    Para fazer o agrupamento com tar para uma Fita:
    tar -cvf /dev/st0 /etc

    Para extrair da Fita com o tar:
    tar -xvf /dev/st0

    Ou podemos específicar todos os arquivos que tenham '.conf' no nome:
    tar -xvf /dev/st0 '*.conf'

    Vamos fazer um teste com as opções do tar citado acima:

    # Faça um backup full:
    $ sudo tar -cvf etc.tar -g controle.txt /etc

    # Crie um novo arquivo no '/etc':
    $ sudo touch /etc/novoarquivo

    # Adicione 'line 0' na primeira linha do arquivo recém criado:
    $ sudo bash -c 'echo "line 0" > /etc/novoarquivo'

    # Agora faça backup incremental':
    $ sudo tar -cvf etc-inc-1.tar -g controle.txt /etc

    # Vejam o tamanho dos arquivos:
    $ du -hs etc*
    252K etc-inc-1.tar
    3.1M etc.tar

    ## Para recuperar deve-se descompactar o Full e depois os incrementais.

    Além do st0 pode ser encontrado também nst0 O st0 quando grava a informação na Fita automaticamente rebobina ela; O nst0 quando grava a informação na Fita não rebobina, precisa fazer manualmente.


    Outra coisa, a fita não precisa ser montada nem colocar um file system nela.
  • cpio

    Outro comando que podemos usar para fazer backup é o cpio.

    # Vejamos um exemplo de uso:
    $ sudo find /etc/*.conf | cpio -vo backup.cpio

    # Para extrair:
    $ sudo cpio -ivdm < backup.cpio
  • dd

    Outro comando que podemos usar para fazer backup é o dd. É usado para copiar uma partição inteira e por isso demora muito mais:

    # Para fazer Backup:
    $ sudo dd if=/dev/sda1 of=backup_sda1.img

    # Para recuperar o Backup:
    $ sudo dd if=backup_sda1.img of=/dev/sda1


Dispositivos de Fita​


O comando que usamos para gerenciar um dispositivo de Fita é o mt. Algumas opções importantes:

# Vamos rebobinar a fita (rewind = rebobina) para quando quiser recuperar os dados:
mt -f /dev/st0 rewind

# Descarregar a fita do Driver (offline):
mt -f /dev/st0 offline

# Mostra o status do dispositivo:
mt -f /dev/st0 status

# Ir para o final da Fita, onde foi realizada a última gravação (bom para continuar gravando na fita):
mt -f /dev/st0 eod


Compactação​


As fitas de Backup já possuem compactação via hardware, pode isso elas mostram dois valores de armazenamento, um sem compactação (normalmente o menor valor) e outro com compactação (normalmente o maior valor).


Não é recomendado usar compactação via software quando vamos copiar para fita!



Comandos para Transferência​


Vamos ver como enviar o backup de uma máquina para outra.

  • scp

    É o comando mais comum para transferência de arquivos em sistemas Unix/Linux, ele roda em cima do SSH, usando a mesma porta.

    # Enviar o backup da máquina local para uma remota:
    $ scp backup.tar fulano@192.168.1.10:~/

    # Pegar o backup da máquina remota para a máquina local:
    $ scp fulano@192.168.1.2:~/backup.tar .
  • tar

    Ainda é possível fazer isso diretamente com o tar:

    tar -cf - /etc | ssh fulano@192.168.1.10 'cat > ~/backup.tar'
  • rsync

    O rsync é bastante usado para fazer backup, principalmente por ele já fazer o incremental, primeiro ele faz um Backup Full e depois o Backup Full vai sendo incrementado, sem a necessidade de ter vários backups incrementais (esse é o comportamento padrão).

    # Transferir de uma máquina para a outra:
    rsync -aruz /etc fulano@192.168.1.10:~/

    Para que isso funcione a máquina remota precisa ter o rsync, para então conectar na porta 873 e fazer a transferência, mas pode ser que essa porta esteja bloqueada, é possível então usar a porta do SSH:

    # Usando ssh com porta padrão:
    rsync -e ssh -aruz /etc fulano@192.168.1.10:~/

    # Usando ssh com porta personalizada:
    rsync -e ssh -p <PORTA> -aruz /etc fulano@192.168.1.10:~/


Fontes importantes​


http://www.amanda.org/

https://www.bacula.org/

https://backuppc.github.io/backuppc/

https://www.bareos.com/