Вопрос или проблема
Может ли borg извлекать только данные, которые не были включены в предыдущую extraction?
Например:
#удаленная машина
borg init ssh://backupserver:/home/backups/mainrepo --encryption=repokey
borg create ssh://backupserver:/home/backups/mainrepo::b_2024-09-09 /storage/data
#локальная машина извлекает данные
cd /extraction/dir
borg extract ssh://backupserver:/home/backups/mainrepo::b_2024-09-09
Через неделю выполняется новая create
и extracted
на локальную машину:
#удаленная машина
borg create ssh://backupserver:/home/backups/mainrepo::b_2024-09-16 /storage/data
#локальная машина
cd /extraction/dir
borg extract ssh://backupserver:/home/backups/mainrepo::b_2024-09-16 // это создает полное извлечение репозитория
Как написано выше, вторичное извлечение извлечет весь репозиторий, даже несмотря на то, что у меня уже есть данные из b_2024-09-09
. Может ли он сделать так, чтобы только изменения данных в b_2024-09-16
были добавлены в извлеченную директорию? /storage/data
имеет несколько терабайт объемом, и извлечение полного репозитория занимает очень много времени.
Ответ или решение
Да, вы можете извлечь только новые данные из резервной копии Borg без необходимости извлекать всю репозиторий заново. Borg не поддерживает полное инкрементальное извлечение, в отличие от некоторых других систем резервного копирования, но есть несколько способов сделать процесс более эффективным.
-
Извлечение изменений между архивами: Вы можете использовать Borg для извлечения файлов, которые были изменены с момента последней резервной копии. Для этого используйте команду
borg extract
и укажите флаги для процесса, однако учтите, что вы все равно будете извлекать изменения на основе указанного архива. -
Архивы с изменением данных: При каждом создании нового архива с помощью команды
borg create
новое состояние файловой системы будет сохранено. Вы можете извлечь только те файлы, которые были изменены с момента вашей последней резервной копии, но это может потребовать извлечения определенных директорий или файлов. -
Извлечение файлов по отдельности: Если вам нужно извлечь только некоторые файлы или директории, вы можете явно указать их при вызове команды. Например:
borg extract ssh://backupserver:/home/backups/mainrepo::b_2024-09-16 /path/to/changed/file_or_directory
Это позволит извлекать только нужную информацию.
-
Использование пограничного времени: Если вы знаете, что файлы были изменены только в определённый период, вы можете использовать опцию
--files-from
, чтобы извлекать только его файлы:borg list ssh://backupserver:/home/backups/mainrepo::b_2024-09-16 --time
С помощью этой команды вы можете просмотреть, какие файлы были изменены с момента последнего архива.
- Функция
borg prune
: Не забывайте о возможности удаления старых архивов, чтобы управлять местом на диске и сохранять только актуальные данные. Это может иметь значение при работе с большими архивами.
Важно также быть аккуратными с именованием архивов и их версиями, чтобы избежать путаницы. Если необходимо, периодически проверяйте целостность резервных копий, чтобы избежать потери данных.
Таким образом, хотя Borg не предлагает механизм «инкрементального» извлечения в полном смысле этого слова, вы всё же можете эффективно управлять процессом; главное — это правильно выбирать, что именно вы хотите извлечь.