Назад | Перейти на главную страницу

Дублирование: как вывести список версий файла?

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

Что ж, теперь я хочу знать когда в истории всех резервных копий произошло конкретное изменение файла. Метка времени и размера изменения файла вместе с метками времени резервного копирования будет достаточно.

Есть ли способ сделать это двулично?

РЕДАКТИРОВАТЬ: я должен уточнить, что хочу увидеть каждый изменить / версию этого файла, а не только последнего, например когда это было впервые представлено, когда это было изменение. Это может быть при нескольких инкрементных резервных копиях.

Начиная с версии 0.7.03 Duplicity, можно перечислить ревизии, в которых был изменен файл:

duplicity collection-status --file-changed 'filename' 'remote-url'

Это был ответ в списке рассылки Эдгар Сольдин:

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

ede / duply.net

Итак, по сути: это невозможно с ванильным дублированием сейчас, но данные находятся в метаданных дублирования.

ДА, это можно сделать, получив список всех файлов в каждом из снимков, которые принимает дублирование (т.е. первая полная резервная копия и каждая инкрементная), а затем сравнить списки файлов и найти конкретный файл, который вас интересует .

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

Для этого я написал сценарий оболочки.

Вы можете попробовать выгрузить полный список файлов, а затем найти в этом списке нужный файл:

duplicity list-current-files url > /path/to/file-list.txt
grep filename /path/to/file-list.txt

Эта команда плохо документирована, но каждая строка в файле имеет дату, которая выглядит как время последнего изменения.

duplicity list-current-files --time now "${DEST}" > /tmp/today
duplicity list-current-files --time 1D "${DEST}" > /tmp/yesterday
grep -Fxvf /tmp/{today,yesterday}