Duplicité: comment lister les versions d'un fichier?

12

En utilisant Duplicity, je peux effectuer une sauvegarde incrémentielle et efficace sur un stockage distant non fiable. Cela fonctionne bien et je peux restaurer des fichiers à un moment précis (ou la prochaine sauvegarde après cela).

Eh bien maintenant, je veux savoir quand, dans l'historique de toutes les sauvegardes, un fichier spécifique a changé . L'horodatage et la taille du changement de fichier ainsi que les horodatages de sauvegarde seraient suffisants.

Une façon de le faire avec duplicité?

EDIT: Je dois préciser que je veux voir chaque modification / version de ce fichier et pas seulement la dernière, par exemple quand il a été introduit pour la première fois, quand il a été modifié. Il peut s'agir de plusieurs sauvegardes incrémentielles de sauvegarde.

Paul
la source
J'ai déposé une liste de souhaits pour Launchpad pour une telle fonctionnalité, FWIW: bugs.launchpad.net/duplicity/+bug/1044715

Réponses:

5

Il y avait une réponse sur la liste de diffusion par Edgar Soldin:

non, vous pouvez actuellement répertorier toutes les versions sauvegardées. la duplicité ne vous dira pas quand ils ont été modifiés. cela pourrait cependant être mis en œuvre car la duplicité en assure le suivi en interne.

ede / duply.net

Donc en substance: ce n'est pas possible avec la duplicité vanille maintenant, mais les données sont dans les métadonnées de duplicité.

Paul
la source
1
Autre point de données: Deja dup s'intègre à gnome et nautilus et si vous cliquez avec le bouton droit sur un fichier et "Restaurer une version précédente", il affiche toutes les versions d'un fichier qu'il connaît. Vous pouvez peut-être vérifier ce code et même l'utiliser.
AndreasM
Eh bien, dejadup est écrit en Vala et écrit la ligne de commande de la duplicité. Je pense que le code de dejadup ne filtre pas les modifications d'un fichier spécifique, mais offre simplement toutes les sauvegardes qu'il possède, peu importe si le fichier a changé ou non.
AndreasM
4

OUI , il est possible de le faire en obtenant une liste de tous les fichiers dans chacun des instantanés que la duplicité prend (c'est-à-dire la première sauvegarde complète et chaque incrémentiel) puis comparer les listes de fichiers et rechercher le fichier spécifique qui vous concerne avec.

Bien qu'il n'affichera pas toutes les modifications apportées au fichier, sauf si le fichier change moins fréquemment que vous effectuez des copies de duplicité, il affichera chaque état du fichier à chaque point de sauvegarde.

J'ai écrit un script shell pour ce faire.

Geoff
la source
3
Geoff, cela semble intéressant! Avez-vous publié le script? Cela semble être un candidat évident à inclure dans la distribution standard.
Paul
3

Vous pouvez essayer de vider la liste complète des fichiers, puis de rechercher dans cette liste le fichier en question:

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

Cette commande est mal documentée, mais chaque ligne du fichier a une date qui semble être l'heure de la dernière modification.

xofer
la source
Pas ce que j'ai demandé mais merci pour l'effort!
Paul
Cela semble indiquer l'horodatage dans l'inode. Pas la dernière fois que la duplicité l'a sauvegardé. Donc, si quelqu'un modifie un fichier et restaure l'ancien horodatage de modification, ce changement sera invisible pour cette méthode.
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
la source