Удалить файлы из rdiff-backup

8

У нас работает система, которая использует rdiff-backup для своих резервных копий. Однако в резервном разделе недостаточно места, поэтому нам необходимо пересмотреть ситуацию. Нам нужно постоянное решение, но до этого времени нам просто нужно освободить место на резервном разделе.

Я нашел несколько файлов, которые мы можем удалить *, но мне интересно, как мне это сделать. Первым шагом, конечно, будет удаление файлов из реальной файловой системы. Однако затем мне нужно будет удалить его из резервных копий (вот где нам нужно место), но я понятия не имею, как это сделать. У кого-нибудь есть идеи, как это сделать?

* кто-то - давно отсутствующий - у кого были игры и личные фотографии в его домашнем каталоге, несколько копий виртуальных жестких дисков

Джаспер
источник

Ответы:

11

Процесс обработки удалений, когда у вас заканчивается свободное место, описан в неофициальном разделе часто задаваемых вопросов в разделе Как удалить файлы из набора резервных копий . Повторяю здесь только для полноты.


Этот метод очень опасен и не должен использоваться , если только файлы, которые вы хотите удалить, не приводят к тому, что на диске резервного копирования заканчивается свободное место, и единственной альтернативой удалению этих файлов является удаление целых приращений.

ВАЖНО: Собственно говоря, вы должны выполнить шаг 4 для каждого приращения mirror_metadata. Rdiff-backup до 1.1.1 не против иметь дополнительные записи mirror_metadata для файлов, которые удаляются таким образом из резервной копии, за исключением самой последней версии mirror_metadata. Однако, в 1.1.1 изменилась обработка mirror_metadata - теперь rdiff-backup раздает файлы метаданных - и неизвестно, повлияет ли наличие дополнительных записей в этих файлах diff на операции восстановления. (Техническое примечание: для различий в mirror_metadata НЕ используется тот же метод, что и для различий в файлах. Это не дельта-файлы rdiff, а простые текстовые файлы (и нет, они также не являются обычными текстовыми различиями). -редактируйте их, так что если вам нужно, вы можете сделать шаг 4 на этих разностях.)

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

  2. Перейдите в целевой каталог своего зеркала и удалите файл или каталог там.

  3. Перейдите в rdiff-backup-data / increments на цели и удалите все следы файла / каталога там. Важный! Если вы удаляете каталог, убедитесь, что вы нашли и удалили все файлы * .dir для него! Если это файл, убедитесь, что вы нашли и удалили все файлы * .missing (если они есть). Будьте осторожны, чтобы не удалить ничего, что не связано с тем, что вы пытаетесь удалить, иначе вы можете потерять способность восстанавливать другие файлы.

  4. Важный шаг! (И ВНИМАНИЕ, это не проверялось с помощью rdiff-backup 1.1.1 или более поздней версии). Вернитесь в rdiff-backup-data и распакуйте последний файл зеркальных метаданных. Отредактируйте файл mirror_metadata в текстовом редакторе с хорошим поведением (ВНИМАНИЕ! Не используйте pico, nano или что-либо еще, что может автоматически переносить строки!) И удалите все ссылки на удаленный файл или каталог. Будьте очень осторожны, чтобы не испортить формат файла.

Дэн Карли
источник
Неофициальный FAQ закрыт, рад, что вы воспроизвели инструкции.
Кинан
Форсирование регрессии также может быть полезно, потому что, если вам удастся просто удалить последнее приращение, это более безопасный подход.
Halfgaar
1
он появляется кто - то сделал скрипт делает вышеуказанные шаги eugenemakerspace.com/wiki/Sites/Rdiff-backup-delete
Varta
2

Похоже, кто-то сделал скрипт, выполнив описанные выше шаги https://www.eugenemakerspace.com/wiki/Sites/Rdiff-backup-delete

Я не тестировал его, но выбрал «безопасный» способ, удалив все файлы, которые уже исчезли за 2 недели, запустив

rdiff-backup --remove-older-than 2W host.net::/remote-dir

еще пример http://www.nongnu.org/rdiff-backup/examples.html

варта
источник