Що станеться, якщо rsnapshot / rdiff-backup перерветься в середині передачі?


20

Питання каже все:

Що станеться, якщо rsnapshot або rdiff-резервне копіювання перерветься в середині передачі?

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

Отже: Що станеться, якщо воно перерветься посередині?

Це призводить до "неповного знімка"?

Чи будуть зіпсовані інші знімки, які залежать від цього? (Напевно, ні, але ...?)


1
Чи не було б набагато зрозуміліше, якби ви розділили це питання на два окремих питання?
andol

2
@andol Якби він шукав інформацію про те, як відновитись після перерваної передачі, я думаю, це було б краще, як два питання. Я інтерпретував, що це скоріше запит порівняння того, скільки проблем буде у вас, якщо ви використовуєте кожну утиліту, хоча, як це варіант "допоможіть мені вирішити, яку використовувати".
ændrük

Спасибі Андолу; але ні, я думаю, що це стоїть як одне питання. В основному, "що станеться, якщо rsnapshot / rsync перерється в середині передачі?", І я думаю, що інструменти охоплюють одну конкретну нішу, тому це не дає ІМО двох окремих питань. Я поставив питання про «неповний знімок» як один із потенційних результатів для уточнення.
emf

Відповіді:


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


1
Помітне нагадування та хороша практика, щоб не відставати від такої культури "правильних методів", ми не хочемо, щоб Linux перетворився на землю-німого споживача. Дякую за замітку.
emf

Таким чином, розуміння правильно: маючи неповну резервну копію «здійснюється через обертаннями» для rsnapshot складе дві речі: 1. Те , що знімок буде неповним , якщо повернути на на більш пізньому етапі 2. Будь-які знімки більш високого рівня буде по- , як і раніше бути повним , але належним чином не посилатиметься на попередні жорсткі файли, які були пропущені в неповному знімку. Це правильно?
emf

1

Це зі мною щойно трапилось. мій зовнішній привід став повним на півдорозі завдяки додатковій резервній копії rsnapshot:

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

Зараз я хотів би поділитися кількома речами, з яких я дізнався з цього. тобто виправити та обмежити шанси на врахування такої справи, щоб мене відкусити назад;)

Відновіть перервану резервну копію Rsnapshot

Я знаю два способи безпечно відкотити.

Вручну

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

Автоматично

rsnapshot не має можливостей паузи / зупинки та відновлення (за винятком обмеженого " пропущеного через план відкату " 2 ), тому нам потрібно використовувати обгортку для обробки цих функцій.

rsnapshot-once3 Філіпп К. Геккель - це обгортка для набору знімків у PHP, що:

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

Використовуючи його протягом року, я щасливий користувач: я редагував php.ini openbase_dirдля своєї резервної потреби та вуаля, щасливий день

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

Використовуючи наш веб-сайт, ви визнаєте, що прочитали та зрозуміли наші Політику щодо файлів cookie та Політику конфіденційності.
Licensed under cc by-sa 3.0 with attribution required.