Duplizität: Wie liste ich Versionen einer Datei auf?

12

Mit Duplicity kann ich ein inkrementelles, effizientes Backup auf einem nicht vertrauenswürdigen Remotespeicher erstellen. Dies funktioniert einwandfrei und ich kann Dateien zu einem bestimmten Zeitpunkt (oder beim nächsten Backup danach) wiederherstellen.

Nun möchte ich wissen, wann in der Historie aller Backups eine bestimmte Datei geändert wurde . Zeitstempel und Größe der Dateiänderung zusammen mit den Sicherungszeitstempeln wären ausreichend.

Wie kann man das mit Duplizität machen?

EDIT: Ich sollte klarstellen, dass ich jede Änderung / Version dieser Datei sehen möchte und nicht nur die letzte, z. B. als sie zum ersten Mal eingeführt wurde, als sie geändert wurde. Dies kann bei mehreren inkrementellen Backups der Fall sein.

Paul
quelle
Ich habe eine Wunschliste zum Launchpad für eine solche Funktion eingereicht, FWIW: bugs.launchpad.net/duplicity/+bug/1044715

Antworten:

6

Seit Version 0.7.03 von Duplicity ist es möglich, die Revisionen aufzulisten, in denen eine Datei geändert wurde:

duplicity collection-status --file-changed 'filename' 'remote-url'
Eborbob
quelle
1
"Option entfernt": * ( bugs.launchpad.net/duplicity/+bug/1526557/comments/4
lickdragon 22.06.18
5

Auf der Mailingliste von Edgar Soldin stand eine Antwort :

Nein, Sie können derzeit alle gesicherten Versionen auflisten. Die Duplizität sagt Ihnen nicht, wann sie geändert wurden. Dies könnte jedoch implementiert werden, da die Duplizität dies intern verfolgt.

ede / duply.net

Also im Wesentlichen: Bei Vanille-Duplizität ist dies derzeit nicht möglich, aber die Daten befinden sich in Duplizitätsmetadaten.

Paul
quelle
1
Ein weiterer Datenpunkt: Deja dup integriert sich in Gnome und Nautilus. Wenn Sie mit der rechten Maustaste auf eine Datei klicken und "Vorherige Version wiederherstellen" wählen, werden alle Versionen einer Datei angezeigt, die bekannt sind. Vielleicht können Sie diesen Code überprüfen und sogar verwenden.
AndreasM
Nun, Dejadup ist in Vala geschrieben und schreibt die Kommandozeile der Duplizität. Ich denke, der Code von dejadup filtert nicht nach Änderungen einer bestimmten Datei, sondern bietet nur alle Backups an, unabhängig davon, ob sich die Datei geändert hat oder nicht.
AndreasM
4

JA , Sie können dies tun, indem Sie eine Liste aller Dateien in jedem der von Duplicity erstellten Snapshots abrufen (dh das erste vollständige Backup und jedes inkrementelle Backup) und dann die Dateilisten vergleichen und nach der betreffenden Datei suchen mit.

Zwar werden nicht alle Änderungen an der Datei angezeigt, es sei denn, die Datei wird seltener geändert als Duplizitätskopien. Es wird jedoch jeder Status der Datei an jedem Sicherungspunkt angezeigt.

Ich habe dazu ein Shell-Skript geschrieben.

Geoff
quelle
3
Geoff, das hört sich interessant an! Hast du das Drehbuch veröffentlicht? Das scheint ein offensichtlicher Kandidat für die Aufnahme in die Standardverteilung zu sein.
Paul
3

Sie könnten versuchen, die vollständige Liste der Dateien zu sichern und dann in dieser Liste nach der fraglichen Datei zu suchen:

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

Dieser Befehl ist schlecht dokumentiert, aber jede Zeile in der Datei hat ein Datum, das anscheinend zum Zeitpunkt der letzten Änderung angezeigt wird.

xofer
quelle
Nicht das, wonach ich gefragt habe, aber danke für die Mühe!
Paul
Dies scheint den Zeitstempel in der Inode anzuzeigen. Nicht das letzte Mal, dass Duplizität dies untermauerte. Wenn also jemand eine Datei ändert und den alten Änderungszeitstempel wiederherstellt, ist diese Änderung für diese Methode nicht sichtbar.
Peter V. Mørch
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
quelle