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

Вопрос говорит сам за себя:

Что произойдет, если rsnapshot или rdiff-backup прервется во время передачи?

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

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

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

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

2 ответа

Решение

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

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 для чего -то критически важного, прочитайте каждое слово руководства и протестируйте, протестируйте, протестируйте все сами!

Это только что случилось со мной. мой внешний диск заполнился на полпути через инкрементное резервное копирование 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 (хорошо для ноутбуков)
  • откат неудачного резервного копирования (проверяет, было ли завершено последнее резервное копирование; если не последний каталог удален, и последовательные каталоги переименовываются, например, daily1. -> daily.0, ...)

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

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

Другие вопросы по тегам