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/