O que acontece se o rsnapshot / rdiff-backup for interrompido no meio de uma transferência?

20

A questão diz tudo:

O que acontece se o rsnapshot ou o rdiff-backup forem interrompidos no meio de uma transferência?

Eu sei que o rsnapshot tenta fazer um instantâneo completo do seu sistema de forma rotativa, e o rdiff-backup faz um backup diferencial, que será baseado nos arquivos previamente salvos por trás dele.

Então: o que acontece se for interrompido no meio?

Isso resulta em um "instantâneo incompleto"?

Outros instantâneos dependentes deste serão corrompidos? (Certamente não, mas ...?)

    
por emf 13.10.2010 / 05:07

2 respostas

22

Meu entendimento é que ...

O

rdiff-backup detectará o incremento incompleto na próxima vez que for executado. Ele excluirá o incremento incompleto para que o local de backup seja o mesmo, como se a tentativa de backup interrompido nunca tivesse sido iniciada.

rsnapshot é um pouco mais complicado porque sua rotina é mais passo a passo e varia dependendo do uso das opções sync_first e use_lazy_deletes .

  • Se você usar sync_first e rsnapshot sync for interrompido, basta executar rsnapshot sync novamente para corrigir as coisas. Se você acidentalmente executar rsnapshot <backup level> nesse ponto, o último ponto de backup permanecerá incompleto e será realizado rotações.
  • Se você não usa sync_first , está apenas preso a um ponto de backup incompleto que é um híbrido da versão antiga e nova dos arquivos. A menos que você inverta manualmente cada ponto de backup, o ponto de backup incompleto será realizado por rotações.
  • Em ambos os casos, a execução de rsnapshot <backup level> fará com que o ponto de backup mais antigo seja perdido, a menos que use_lazy_deletes esteja ativado.

Observe que sync_first e use_lazy_deletes têm o custo de usar mais espaço em disco.

Um lembrete / aviso: Isso deve ser dito sem dizer, mas nunca confiar cegamente nos conselhos dos outros na internet. Se você planeja usar o rdiff-backup ou o rsnapshot para algo de missão crítica , leia todas as palavras do manual e teste, teste, teste tudo você mesmo!

    
por ændrük 15.10.2010 / 05:28
1

Isso só aconteceu comigo. meu drive externo ficou cheio na metade do backup incremental do rsnapshot:

rsync: write failed on "<path>": No space left on device (28) 

Agora, gostaria de compartilhar algumas coisas que aprendi com isso. ou seja, para reparar e limitar as chances consideráveis para tal caso me morder de volta;)

Retomar o backup interrompido de um Rsnapshot

Eu conheço duas maneiras de reverter isso com segurança.

manualmente

  1. Exclua o último diretório (por exemplo, daily.0)
  2. Renomeie os diretórios consecutivos (diariamente.1 - > daily.0, ...); possível script 1
  3. Execute o backup como de costume (novamente).

Automaticamente

O rsnapshot não tem recursos de pausa / parada e retomada (exceto pelo limitado " ignorado devido ao plano de reversão " 2 ), então temos que usar um wrapper para lidar com esses recursos.

rsnapshot-once 3 por Philipp C. Heckel é um wrapper para o rsnapshot no PHP que:

  • funciona sem modificar o conf do rsnapshot
  • garanta que tarefas diárias, semanais e mensais sejam executadas apenas uma vez no respectivo período de tempo, via cron (bom para laptops)
  • reversão do backup com falha (verifica se o último backup foi concluído; se não, o último diretório será excluído e os diretórios consecutivos serão renomeados, por exemplo, diariamente1. - > daily.0, ...)

Usando por um ano eu sou um usuário feliz: eu editei openbase_dir do php.ini para minha necessidade de backup e voila, dia de sorte ^ _ ^ Mais suave e seguro do que minha solução anterior baseada em rsnapshot.

Observação: slm me vinculou aqui a partir de uma pergunta duplicada: destino do Rsnapshot completo - como re-executar com segurança?

    
por tuk0z 17.02.2015 / 16:22