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

12

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

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

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

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

Павел
источник
Я отправил список желаний на панель запуска для такой функции, FWIW: bugs.launchpad.net/duplicity/+bug/1044715

Ответы:

6

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

duplicity collection-status --file-changed 'filename' 'remote-url'
Eborbob
источник
1
«Опция удалена»: * ( bugs.launchpad.net/duplicity/+bug/1526557/comments/4
lickdragon
5

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

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

Эда / duply.net

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

Павел
источник
1
Другой момент данных: Deja dup интегрируется с gnome и nautilus, и если вы щелкнете правой кнопкой мыши по файлу «Восстановить предыдущую версию», он отобразит все версии файла, о которых он знает. Может быть, вы можете проверить этот код и даже использовать его.
AndreasM
Хорошо, что dejadup написан на Vala, а скрипты - командной строки на двуличие. Я думаю, что код dejadup не фильтрует изменения конкретного файла, а просто предлагает все резервные копии, независимо от того, изменился файл или нет.
AndreasM
4

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

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

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

Geoff
источник
3
Джефф, это звучит интересно! Вы опубликовали сценарий? Это кажется очевидным кандидатом на включение в стандартный дистрибутив.
Paul
3

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

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

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

xofer
источник
Не то, что я просил, но спасибо за усилия!
Пол
Появляется, чтобы показать метку времени в inode. Не последний раз, когда двуличность подтвердила это. Поэтому, если кто-то изменит файл и восстановит старую метку времени изменения, это изменение будет невидимым для этого метода.
Петр В. Мёрк,
0
duplicity list-current-files --time now "${DEST}" > /tmp/today
duplicity list-current-files --time 1D "${DEST}" > /tmp/yesterday
grep -Fxvf /tmp/{today,yesterday}
Joco
источник