Copias de Seguranca: mudanças entre as edições

De Wiki Cursos IFPR Foz
Ir para navegaçãoIr para pesquisar
Linha 122: Linha 122:
Para transferir dados entre os servidores pode-se utilizar a aplicação '''SSH''' e o comando de cópia remota '''scp'''.  
Para transferir dados entre os servidores pode-se utilizar a aplicação '''SSH''' e o comando de cópia remota '''scp'''.  


Para que o backup seja feito de forma automática, é necessário utilizar uma '''chave pública de autenticação''' que permita que o '''script de backup''' transfira os arquivos sem necessidade de interferência do usuário <ref name=MORIMOTO/>.  
Para que o backup seja feito de forma automática, é necessário utilizar '''chaves de autenticação''' para permitir que o '''script de backup''' transfira os arquivos sem necessidade de interferência do usuário <ref name=MORIMOTO/>.  


;Chave Pública de Autenticação: Veja como gerar uma chave pública de autenticação em [[Servidor Remoto SSH]].
;Uso de Chaves de Autenticação: Veja como gerar '''chaves de autenticação''' em [[Servidor Remoto SSH]].
 
==Backup Incremental com rsync==
 
O utilitário '''rsync''' permite '''sincronizar''' o conteúdo de dois diretórios, transferindo apenas as modificações. Ele não trabalha apenas comparando arquivo por arquivo, mas também comparando o conteúdo de cada um. Se apenas uma parte do arquivo foi modificada, o '''rsync''' transferirá apenas ela, sem copiar novamente todo o arquivo  <ref name=MORIMOTO/>.
 
Com o '''rsync''' é possível programas '''backup incrementais''' de grandes quantidades de dados, mantendo-se cópias atualizadas em discos rígidos externos ou em servidores remotos.
 
O '''backup incremental''' pode ser atualizado '''todo dia''' e complementado por um '''backup total''' realizado '''semanalmente''' ou '''mensalmente'''.
 
;Instalação do rsync: Utilizar o instalador de pacotes:
sudo apt-get install rsync
 
;Realização de um backup local: Informar os diretórios de origem e de destino, para onde os arquivos serão copiados:
rsync -av /dados/ /mnt/backup/


==Referências==
==Referências==

Edição das 12h08min de 17 de novembro de 2015

Cópias de Segurança ou Backups

A cópia de segurança dos dados, ou backup, consiste em manter uma ou mais cópias dos dados para fins de recuperação em caso de acidente ou erro que ocasione e perda ou danificação dos dados [1].

Também é importante manter as cópias de segurança em local seguro. Para dados importantes, com necessidade extrema de recuperabilidade, várias cópias devem ser providenciadas e armazenadas em locais diferentes, em prédios ou cidades distinta.

Com o avanço da Internet e dos sistemas de armazenamento em nuvem, cópias de segurança podem ser providenciadas para serem armazenadas por meio da rede, permitindo um espalhamento físico dos dados.

Tipos de backup

O tipo de backup a ser utilizado varia de acordo com a necessidade da organização, e depende de quantidade de informação a ser guardada e da frequência com que a informação é atualizada.

Existe basicamente três tipos de backups [1]:

  • Backup total;
  • Backup incremental;
  • Backup diferencial.

Backup total

Um backup total consiste em salvar todos os dados, incluindo todos os arquivos de todos os discos rígidos, onde haja informações a serem recuperadas.

A vantagem deste método é dispor de uma cópia total dos dados, facilitando sua recuperação caso seja necessário. Entretanto, caso haja grande quantidade de informações a serem guardadas, o backup total pode ser muito demorados e ainda ser necessário várias conjuntos de fitas ou outros dispositivos para armazenar as informações.

Como os backup devem ser realizados regularmente, mantendo-se as informações de cada período considerado, o uso de backup total leva a manter dados redundantes, uma vez que toda a informação é copiada em cada backup.

Backup incremental

Um backup incremental somente salva os dados que foram alterados desde o último backup total ou incremental. No backup incremental deve-se manter uma fita com um backup total (não importa a quanto tempo tenha sido criada) e todos os backups incrementais realizados.

A vantagem do backup incremental é o uso eficiente do tempo e do espaço a ser utilizado pelos dados, já que o processo de cópia envolve somente a cópia dos dados que foram modificados desde o último backup.

A desvantagem é que as restaurações totais ou parciais são demoradas, já que pode-se ter que pesquisar em várias fitas para se localizar os dados necessários.

Backup diferencial

Um backup diferencial salva os dados que foram alterados desde o último backup total. É necessário uma fita com o backup total e da fita mais recente do backup diferencial para realizar uma recuperação completa do sistema.

O backup diferencial tem a vantagem de permitir uma recuperação rápida, mas a desvantagem de ser demorado caso tenha passado muito tempo desde o último backup total.

Armazenamento

Existem vários tipos de dispositivos de armazenamento que podem ser utilizados para guardar a cópia de segurança dos dados, como unidades de fita, discos rígidos, e CD/DVD.

As unidades de fita são indicadas para backups profissionais [1], entretanto, exigem organização e cuidado para seu armazenamento para não comprometer os dados.

Os discos rígidos são uma ótima unidade de armazenamento em termos de custo e capacidade de armazenar informações. Unidades removíveis são práticas de serem substituídas e podem ser uma boa solução para empresas de pequeno porte.

Os CD/DVD apresentam capacidade de armazenamento limitada e são frágeis, sendo adequados para uso doméstico.

Políticas de backup

Uma política de backup tem por objetivo formalizar os procedimentos técnicos para a realização da cópia de segurança dos dados. A definição da política deve levar em conta o tamanho da instituição, a quantidade de dados a serem guardados, a frequência em que as cópias devem ser realizadas e o tipo de equipamento que a organização dispõe.

Pontos a serem definidos em uma política de backup [1]:

  • Frequência em que a cópia de segurança deve ser realizada;
  • Quanto tempo demora a cópia;
  • Quanto tempo a recuperação dos dados pode levar;
  • Por quanto tempo será mantida a cópia de segurança.

Backup em Servidores Linux

Num servidor Linux os principais diretórios que precisam de cópias de segurança são [2]:

  • /var/www: É o diretórios onde ficam as páginas Web de um servidor Web.
  • /var/lib/mysql: É o diretório padrão das bases de dados MySQL e possui arquivos que são utilizados por servidores Web e outros aplicativos.
  • /home: É o diretório onde ficam os arquivos pessoais dos usuários.
  • /etc: É o diretório onde ficam os principais arquivos de configuração do sistema. É bom manter cópias dos mesmos para evitar reconfigurar totalmente o sistema após uma reinstalação.
  • /var/log: É o diretório onde ficam os arquivos de log do sistema, com o registro de todas as ações sobre a operação do sistema.

Também é importante registrar como estão montadas as partições fora da estrutura principal de diretórios do Linux, para reconfigurar o sistema caso seja necessário.

Utilitários para backup

Amanda
O Amanda é um sistema dedicado para realização de backup de maneira mais profissional, baseado em software livre e gratuito. É voltado para backup em unidades de fita, o que nem sempre é uma opção barata e fácil para pequenas empresas. Entretanto, também é possível utilizar este sistema para programar backup em disco rígido.
tar
O utilitário tar foi desenvolvido originalmente para a função de backup, gerando um único arquivo que depois poderia ser armazenado em fita, disco rígido ou outra unidade. Por ser um utilitário padrão no Linux e fácil utilizar em pequenas organizações, o tar é a opção que vamos em nosso servidor.
gzip
O utilitário gzip é utilizado para compactar arquivos, geralmente utilizado em conjunto com o tar. Os arquivos compactados com o gzip usam a extensão tar.gz.


Exemplo de comando para compactar o diretório /dados e criar um arquivo tar.gz [2]:

tar -zcvf arquivo.tar.gz dados/
onde a opção z indica para campactar com gzip, c para criar novo arquivo, v para exibir informações e f para usar como destino um arquivo.

Para descompactar o arquivo posteriormente, troca-se a opção c por x:

tar -zxvf arquivo.tar.gz
Como não foi indicada um diretório destino, este comando descompacta no diretório corrente.

Estes comandos são úteis para realizar cópias de segurança de um ou mais diretórios do sistema, gerando um arquivo compactado que poderia ser armazenado em um disco rígido externo ou gravado em DVD.

Scripts de backup

Tão importante quanto fazer as cópias de segurança e organizá-la e datá-las para facilitar a recuperação posterior dos dados.

Suponha que seja preciso fazer backups diários de um diretório de dados diariamente. As invés de renomear cada arquivo gerado pelo backup, um pequeno script poderia facilitar o processo [2]:

DATA='date +%Y%b%d
cd /mnt/backup
tar -zcvf Backup-"$DATA".tar.gz dados/
No exemplo os arquivos de backup são armazenados no diretório /mnt/backup, que pode ser um diretório montado em um disco rígido exclusivo para as cópias de segurança.

Agendamento de backup

Para que script seja executado diariamente de forma automática, o mesmo pode ser incluído no agendamento de tarefas com a crontab global, por exemplo [2]:

30 6 * * * root /usr/local/bin/script-backup
onde 30 6 indica minuto e hora, root indica que o script será executado com permissão de administrdor e /usr/local/bin/ é o local onde está armazenado o script.

Backup em DVD

growisofs
É um comando que permite gravar dados em DVD e pode ser utilizado por um script de backup.

Exemplo de script que gera um arquivo de backup em um diretório temporário, em seguida grava no DVD e finalmente apaga os dados do diretório temporário [2]:

DATA='date +%Y%b%d
mkdir /tmp/backup
cd /tmp/backup
tar -zcvf Backup-"$DATA".tar.gz dados/
growisofs -Z /dev/dvd -RJ /tmp/backup/Backup-"$DATA".tar.gz
cd ../; rm -ft /tmp/backup
Onde a opção -Z cria uma nova seção dentro da mídia, as opções -RJ oferecem suporte para nomes longos. O drive de DVD normalmente é acessado no Linux pelo link /dev/dvd.

Backup em Servidor Remoto

Uma boa opção para realizar cópias de segurança é salvar os backups em um servidor remoto. Usar servidores em locais diferentes elimina a possibilidade de desastres e destruir o servidor principal e o servidor com o backup.

Para transferir dados entre os servidores pode-se utilizar a aplicação SSH e o comando de cópia remota scp.

Para que o backup seja feito de forma automática, é necessário utilizar chaves de autenticação para permitir que o script de backup transfira os arquivos sem necessidade de interferência do usuário [2].

Uso de Chaves de Autenticação
Veja como gerar chaves de autenticação em Servidor Remoto SSH.

Backup Incremental com rsync

O utilitário rsync permite sincronizar o conteúdo de dois diretórios, transferindo apenas as modificações. Ele não trabalha apenas comparando arquivo por arquivo, mas também comparando o conteúdo de cada um. Se apenas uma parte do arquivo foi modificada, o rsync transferirá apenas ela, sem copiar novamente todo o arquivo [2].

Com o rsync é possível programas backup incrementais de grandes quantidades de dados, mantendo-se cópias atualizadas em discos rígidos externos ou em servidores remotos.

O backup incremental pode ser atualizado todo dia e complementado por um backup total realizado semanalmente ou mensalmente.

Instalação do rsync
Utilizar o instalador de pacotes:
sudo apt-get install rsync
Realização de um backup local
Informar os diretórios de origem e de destino, para onde os arquivos serão copiados:
rsync -av /dados/ /mnt/backup/

Referências

  1. 1,0 1,1 1,2 1,3 VALLE, O. T. Adminstração de Redes com Linux: Fundamentos e práticas, IFSC, Florianópolis, 2010.
  2. 2,0 2,1 2,2 2,3 2,4 2,5 2,6 MORIMOTO, C. E. Seridores Linux: Guia prático, Sul Editores, Porto Alegre, 2013.

--Evandro.cantu (discussão) 08h36min de 12 de novembro de 2015 (BRST)