Duplicidad: ¿Cómo enumerar las versiones de un archivo?

12

Usando Duplicity puedo hacer una copia de seguridad incremental y eficiente en un almacenamiento remoto no confiable. Esto funciona bien y puedo restaurar archivos en un momento específico (o la próxima copia de seguridad después de eso).

Bueno, ahora quiero saber cuándo en el historial de todas las copias de seguridad se realizó un cambio de archivo específico . La marca de tiempo y el tamaño del cambio de archivo junto con las marcas de tiempo de respaldo serían suficientes.

¿Alguna forma de hacerlo con duplicidad?

EDITAR: debo aclarar que quiero ver cada cambio / versión de ese archivo y no solo el último, por ejemplo, cuándo se introdujo por primera vez, cuándo fue el cambio. Eso podría estar en múltiples copias de seguridad incrementales.

Pablo
fuente
He presentado una lista de deseos para launchpad para dicha función, FWIW: bugs.launchpad.net/duplicity/+bug/1044715

Respuestas:

5

Hubo una respuesta en la lista de correo de Edgar Soldin:

no, actualmente puede enumerar todas las versiones respaldadas. duplicity no te dirá cuándo fueron cambiados. Sin embargo, esto podría implementarse ya que la duplicidad internamente hace un seguimiento de eso.

ede / duply.net

Entonces, en esencia: ahora no es posible con duplicidad vainilla, pero los datos están en metadatos de duplicidad.

Pablo
fuente
1
Otro punto de datos: Deja dup se integra con gnome y nautilus y si hace clic con el botón derecho en un archivo en "Restaurar una versión anterior", muestra todas las versiones de un archivo que conoce. Tal vez pueda verificar este código e incluso usarlo.
AndreasM el
Bueno, Dejadup está escrito en Vala y escribe la línea de comandos de duplicidad. Creo que el código de dejadup no filtra los cambios de un archivo específico, sino que solo ofrece todas las copias de seguridad que tiene, sin importar si el archivo ha cambiado o no.
AndreasM
4

, es posible hacer esto al obtener una lista de todos los archivos en cada una de las instantáneas que toma duplicidad (es decir, la primera copia de seguridad completa y cada incremental) y luego comparar las listas de archivos y buscar el archivo específico que le interesa con.

Si bien no mostrará todos los cambios en el archivo a menos que el archivo cambie con menos frecuencia que las copias duplicadas, mostrará cada estado del archivo en cada punto de copia de seguridad.

Escribí un script de shell para hacer esto.

Geoff
fuente
3
Geoff, eso suena interesante! ¿Publicaste el guión? Esa parece ser una candidata obvia para su inclusión en la distribución estándar.
Paul
3

Puede intentar volcar la lista completa de archivos y luego buscar en esa lista el archivo en cuestión:

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

Este comando está mal documentado, pero cada línea del archivo tiene una fecha que parece ser la última hora de modificación.

xofer
fuente
No es lo que pedí, pero gracias por el esfuerzo.
Paul
Esto parece mostrar la marca de tiempo en el inodo. No es la última vez que la duplicidad lo respalda. Entonces, si alguien cambia un archivo y restaura la antigua marca de tiempo de modificación, ese cambio será invisible para este método.
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
fuente