Что произойдет, если rsnapshot / rdiff-backup будет прервано в середине передачи?

20

Вопрос говорит все:

Что произойдет, если rsnapshot или rdiff-backup будут прерваны в середине передачи?

Я знаю, что rsnapshot пытается сделать полный снимок вашей системы вращением, а rdiff-backup делает дифференциальную резервную копию, которая будет основана на файлах, ранее сохраненных за ней.

Итак: что произойдет, если он будет прерван посередине?

Это приводит к «неполному снимку»?

Будут ли повреждены другие снимки, зависящие от этого? (Конечно нет, но ...?)

    
задан emf 13.10.2010 в 05:07
источник

2 ответа

22

Я понимаю, что ...

rdiff-backup обнаружит неполное приращение при следующем запуске. Он удалит неполное приращение, так что место резервного копирования будет таким же, как если бы прерванная попытка резервного копирования никогда не запускалась.

rsnapshot немного сложнее, потому что его процедура более ступенчатая и варьируется в зависимости от использования опций sync_first и use_lazy_deletes .

  • Если вы используете sync_first и rsnapshot sync получает прерывание, вы можете просто запустить rsnapshot sync еще раз, чтобы выправить ситуацию. Если вы случайно запустили rsnapshot <backup level> в этой точке, последняя точка резервного копирования останется неполной и будет переноситься с помощью поворотов.
  • Если вы не используете sync_first , вы просто застряли с неполной точкой резервного копирования, которая представляет собой гибрид старой и новой версий файлов. Если вы не вручную повернуть все точки резервной копии, неполная точка резервного копирования будет проходить через вращение.
  • В обоих случаях запуск rsnapshot <backup level> приведет к потере самой старой точки резервной копии, если не включен use_lazy_deletes .

Обратите внимание, что sync_first и use_lazy_deletes приходится на использование большего дискового пространства.

Напоминание / отказ от ответственности: это должно быть само собой разумеющимся, но никогда не слепо доверять другим советам в Интернете. Если вы планируете использовать rdiff-backup или rsnapshot для чего-то критически важного , прочитайте каждое слово руководства и тест, тест, тест все сами!

    
ответ дан ændrük 15.10.2010 в 05:28
источник
1

Это случилось со мной. мой внешний накопитель стал полным на полпути через инкрементное резервное копирование rsnapshot:

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

Теперь я хотел бы поделиться несколькими вещами, которые я узнал из этого. т.е. отремонтировать и ограничить возможности для такого случая, чтобы укусить меня;)

Возобновить прерванный резерв Rsnapshot

Я знаю два способа безопасного отката.

Вручную

  1. Удалить последний каталог (например, daily.0)
  2. Переименование последовательных каталогов (daily.1 - > daily.0, ...); возможный сценарий 1
  3. Запустите резервную копию как обычно (снова).

Автоматически

rsnapshot не имеет возможности приостановки / остановки и возобновления (за исключением ограниченного «, пропущенного из-за плана отката » 2 ), поэтому мы должны использовать обертку для обработки этих функций.

rsnapshot-once 3 от Philipp C. Heckel - это оболочка для rsnapshot в PHP, которая:

  • работает без изменения конфига rsnapshot.
  • гарантировать, что ежедневные, еженедельные и ежемесячные задачи запускаются только один раз в соответствующий период времени, через cron (приятно для ноутбуков)
  • отката неудачной резервной копии (проверяет, была ли последняя резервная копия завершена, если последний каталог не удален, а последовательные каталоги переименовываются, например, ежедневно1. - > daily.0, ...)

Используя его в течение года, я счастливый пользователь: я отредактировал openbase_dir php.ini для моей потребности в резервной копии и voila, удачный день ^ _ ^ Более плавный и безопасный, чем предыдущее исходное решение на основе rsnapshot.

Примечание: slm связал меня здесь из дублированного вопроса: Назначение Rsnapshot полностью - как безопасно повторить?

    
ответ дан tuk0z 17.02.2015 в 16:22