Como fazer backup diferencial no linux?

6

Eu tenho que escrever um script para fazer backup diferencial (de um diretório). Backup diferencial:

A differential backup backs up only the files that changed since the last full back. For example, suppose you do a full backup on Sunday. On Monday you back up only the files that changed since Sunday, on Tuesday you back up only the files that changed since Sunday, and so on until the next full backup.

Suponha, por exemplo:

Monday - Realizou um backup completo e salvou o conjunto de arquivos.

Thursday - Deseja executar um backup diferencial usando o mesmo conjunto de arquivos. Todos os arquivos           que foram alterados desde o backup completo no backup           backup diferencial.

A partir de agora, se eu precisar, usarei o script, então sugiro prosseguir ou escrever o script para automatizar isso.

    
por Omkant 19.07.2012 / 10:40

4 respostas

7

Não bastante o que você pediu, mas muito semelhante em vigor (ou seja, você "paga" o armazenamento somente para arquivos que realmente foram alterados):

Usando o rsync, criando hard links para arquivos inalterados.

A grande vantagem é que cada "instantâneo" é um backup completo por si só, ou seja, na recuperação você só precisa restaurar aquele instantâneo (em vez de recuperar uma base e seus incrementos).

Existe uma boa documentação sobre essa abordagem disponível em www.mikerubel.org/computers/rsync_snapshots/

    
por 19.07.2012 / 10:48
1

man dump

 -level#
              The dump level (any integer). A level 0, full backup, guarantees
              the  entire  file  system  is copied (but see also the -h option
              below). A level number above 0, incremental backup,  tells  dump
              to copy all files new or modified since the last dump of a lower
              level. The default level is 0. Historically only levels 0  to  9
              were  usable  in  dump,  this  version is able to understand any
              integer as a dump level.

Vale a pena ler sobre o esquema de backup incremental "Tower of Hanoi" e entender por que e como isso é usado.

Veja também link

E link que diz

A Unix example would be:

rsync -e ssh -va --link-dest=$dst/hourly.1 $remoteserver:$remotepath $dst/hourly.0

The use of rsync's --link-dest option is what makes this command an example of incremental backup.

    
por 19.07.2012 / 10:49
1

Duplicity backs [up] directories by producing encrypted tar-format volumes and uploading them to a remote or local file server. Because duplicity uses librsync, the incremental archives are space efficient and only record the parts of files that have changed since the last backup. Because duplicity uses GnuPG to encrypt and/or sign these archives, they will be safe from spying and/or modification by the server.

link

Duplicity implementa um esquema de backup tradicional, em que o archive inicial contém todas as informações (backup completo) e, no futuro, apenas as informações alteradas são adicionadas. No entanto, aqui estão algumas vantagens que podem ter sobre outras soluções semelhantes:

  • Fácil de usar: Embora a duplicidade seja um utilitário de linha de comando, a semântica é relativa simplesmente. Para dar um exemplo básico, este comando faz o backup do diretório / usr para o host reminder host.net via scp: duplicity /usr scp://host.net/target_dir

  • Arquivos criptografados e assinados: Os arquivos que a duplicidade produz podem ser criptografados e assinados usando o GnuPG, o padrão para criptologia de software livre. O local remoto não poderá inferir muito sobre os backups além do tamanho e quando eles são carregados. Além disso, se os arquivos forem modificados no lado remoto, isso será detectado durante a restauração.

  • Largura de banda e espaço eficientes: a duplicidade usa o algoritmo rsync para que apenas as partes alteradas dos arquivos sejam enviadas ao arquivo morto ao fazer um backup incremental. Por exemplo, se um arquivo de log longo aumentar em apenas algumas linhas de texto, um pequeno diff será enviado para o arquivo e salvo nele. Outros programas de backup podem salvar uma cópia completa do arquivo.

  • Formato de arquivo padrão: Embora os dados do arquivo sejam criptografados, dentro dele estão os arquivos de formato padrão do GNU-tar. Um backup completo contém tarballs normais e backups incrementais são arquivos tar de novos arquivos e deltas de backups anteriores. Os deltas estão no formato produzido pelo rdiff do utilitário de linha de comando do librsync. Embora você nunca precise examinar manualmente um arquivo de duplicidade, caso seja necessário, ele pode ser produzido e processado usando o GnuPG, o rdiff e o tar.

  • Escolha do protocolo remoto: A duplicidade não faz muitas demandas em seu servidor de arquivamento. Desde que os arquivos possam ser salvos, lidos, listados e excluídos de um local, esse local pode ser usado como um back-end de duplicidade. Além de aumentar a escolha do usuário, ele pode tornar um servidor mais seguro, já que os clientes só precisam de acesso mínimo.

Atualmente, há suporte para armazenamento de arquivos locais, scp / ssh, ftp, rsync, HSI, WebDAV, Tahoe-LAFS e Amazon S3, e outros não devem ser difíceis de adicionar.

    
por 03.05.2017 / 14:23
0

Não há necessidade de escrever scripts quando existem ferramentas que façam exatamente isso.

SVN, GIT

Você pode configurar o svn e enviar seu diretório. Toda vez que você se compromete, você economiza diferença. Salvar = Backup neste caso.

Você pode voltar no tempo e restaurar instantâneos de confirmações anteriores.

Esta solução é discutida aqui

    
por 19.07.2012 / 10:50

Tags