Isso aconteceu comigo. minha unidade externa ficou completa no meio 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, reparar e limitar consideravelmente as chances de um caso como esse me morder de volta;)
Retomar o backup interrompido de um Rsnapshot
Conheço duas maneiras de reverter isso com segurança.
Manualmente
- Exclua o último diretório (por exemplo, daily.0)
- Renomeie diretórios consecutivos (daily.1 -> daily.0, ...); roteiro possível 1
- Execute o backup como de costume (novamente).
Automaticamente
O rsnapshot não possui recursos de pausa / parada e retomada (exceto os limitados " ignorados devido ao plano de reversão " 2 ), portanto, precisamos usar um wrapper para lidar com esses recursos.
rsnapshot-once
3 por Philipp C. Heckel é um wrapper para rsnapshot em PHP que:
- funciona sem modificar o conf do seu rsnapshot
- garantir que tarefas diárias, semanais e mensais sejam executadas apenas uma vez no respectivo período, via cron (bom para laptops)
- reversão do backup com falha (verifica se o último backup foi concluído; caso contrário, o último diretório foi excluído e os diretórios consecutivos foram renomeados, por exemplo, daily1. -> daily.0, ...)
Utilizando-o por um ano, sou um usuário feliz: editei o php.ini openbase_dir
para minha necessidade de backup e pronto, dia de sorte ^ _ ^ Mais suave e seguro do que minha solução anterior baseada em rsnapshot.
Nota: slm me ligou aqui a partir de uma pergunta duplicada: destino Rsnapshot cheio - como executar novamente com segurança?