Como manter um histórico de backups?

4

Minha intenção é criar um "instantâneo" de um determinado disco rígido em um servidor todos os dias. Como posso ter certeza de que o instantâneo de hoje, três dias atrás, cinco dias atrás, 10 dias atrás (e assim por diante) estão sendo mantidos e substituídos ciclicamente? Eu encontrei uma ferramenta: duplicidade, mas não encontrei nenhuma maneira de conseguir isso usando-a. Devo ir para um script de shell bash? Existe algum exemplo do qual eu possa me inspirar?

O sistema está executando o Debian.

    
por giovi321 27.03.2015 / 22:31

2 respostas

3

A duplicidade cria instantâneos, mas na forma de arquivos compactados, não em um formato que possa ser lido diretamente.

Existem várias maneiras de criar instantâneos. Alguns sistemas de arquivos avançados, como ZFS e Btrfs tê-los como um recurso interno, assim como algumas camadas de disco, como LVM .

Em um sistema de arquivos genérico, uma técnica básica é reproduzir a árvore de diretórios da qual você deseja fazer um instantâneo, mas criar hard links para cada arquivo, em vez de copiar arquivos. Quando um arquivo é excluído e substituído por uma nova versão, o instantâneo retém a versão antiga. Observe que alguns aplicativos modificam arquivos no lugar; isso também modificaria a versão do snapshot, já que são o mesmo arquivo. Este é um problema inerente às soluções baseadas em hard link.

Uma variante da vinculação direta direta é sempre fazer uma cópia ao fazer backup de um arquivo, mas se um arquivo não tiver sido alterado desde o último backup, crie um link físico para o backup anterior em vez de criar uma nova cópia. Ao contrário da abordagem anterior, essa é adequada para backups, pois não corre o risco de reescrever o histórico modificando arquivos em backups antigos.

Rsync com a opção --link-dest e Rsnapshot são as ferramentas mais comuns para criar esses instantâneos. O Rsnapshot é uma ferramenta de nível superior: ele usa o rsync sob o capô, mas cuida de chamá-lo com os argumentos certos, de gerenciar o abatimento de backups antigos, etc.

Com o rsnapshot, você especifica como selecionar backups antigos definindo vários intervalos. O intervalo mais baixo é a frequência com que os backups são feitos, no seu caso, no dia exato. Intervalos mais longos definem quais backups são retidos. Para cada diretiva retain INTERVAL N in rsnapshot.conf , quando você executa rsnapshot INTERVAL , o rsnapshot faz duas coisas:

  1. Selecione os diretórios de backup para que apenas os instantâneos N -1 permaneçam por INTERVAL .
  2. Para o intervalo mais baixo, faça um backup; para outros intervalos, replique a imagem atual para o intervalo anterior.

Por exemplo, para fazer backups diários e reter os backups de 3, 5 e 10 dias atrás e incluir as seguintes retain linhas no seu /etc/rsnapshot.conf :

retain daily 2
retain day3 2
retain day5 3

Execute rsnapshot daily como uma tarefa cron diária. Poucos minutos antes desse trabalho, execute rsnapshot day3 e rsnapshot day5 a cada três dias; você pode aproximar assim:

04 04 5,10,15,20,25,30 * * rsnapshot day5
07 04 3,6,9,12,15,18,21,24,27,30 * * rsnapshot day3
10 04 * * * rsnapshot daily

(Você não pode ter backups de exatamente três dias atrás, porque você está apagando no segundo dia - o que você faz é manter um backup diário em 3.) Um esquema de retenção mais clássico é a retenção semanal e mensal, conforme ilustrado na documentação do rsnapshot.

    
por 28.03.2015 / 00:43
0

Encontrei backups para que seja rápido após o primeiro backup. Backup incremental e backups completos podem ser mantidos em diferentes agendamentos. Apenas uma cópia de cada versão do arquivo é mantida, por isso é bastante eficiente em termos de espaço. A restauração é feita a partir de uma página da web na qual você pode procurar e baixar arquivos individuais ou criar arquivos de restauração. Desabilitei o acesso de gravação, portanto, preciso restaurar a partir de arquivos compactados ou copiando arquivos individuais.

Há uma variedade de outros sistemas de backup que usam mecanismos semelhantes para manter backups históricos.

    
por 28.03.2015 / 15:01