Duplikat: Jak wyświetlić listę wersji pliku?

12

Za pomocą funkcji Duplicity mogę tworzyć przyrostowe, wydajne kopie zapasowe w niezaufanym zdalnym magazynie. Działa to dobrze i mogę przywrócić pliki w określonym momencie (lub następnej kopii zapasowej po tym).

Teraz chcę wiedzieć, kiedy w historii wszystkich kopii zapasowych nastąpiła konkretna zmiana pliku . Wystarczający byłby znacznik czasu i rozmiar zmiany pliku wraz ze znacznikami czasu tworzenia kopii zapasowej.

W jakikolwiek sposób zrobić to z podwójnością?

EDYCJA: Powinienem wyjaśnić, że chcę zobaczyć każdą zmianę / wersję tego pliku, a nie tylko ostatnią, np. Kiedy był wprowadzany po raz pierwszy, kiedy był zmieniany. Może to dotyczyć wielokrotnych przyrostowych kopii zapasowych.

Paweł
źródło
Złożyłem listę życzeń na starter dla takiej funkcji, FWIW: bugs.launchpad.net/duplicity/+bug/1044715

Odpowiedzi:

5

Na liście mailowej znalazła się odpowiedź Edgara Soldina:

nie, obecnie możesz wyświetlić listę wszystkich wersji kopii zapasowej. dwulicowość nie powie Ci, kiedy zostały zmienione. można to jednak wdrożyć, ponieważ wewnętrznie śledzi to podwójność.

ede / duply.net

Zasadniczo: W przypadku waniliowej duplikacji nie jest to teraz możliwe, ale dane są w metadanych duplikatów.

Paweł
źródło
1
Kolejny punkt danych: Deja dup integruje się z gnome i nautilus i jeśli klikniesz prawym przyciskiem myszy plik „Przywróć poprzednią wersję”, wyświetli wszystkie wersje pliku, o którym wie. Może możesz sprawdzić ten kod, a nawet go użyć.
AndreasM
Cóż, dejadup jest napisany w Vala i pisze skrypt wiersza poleceń. Myślę, że kod dejadup nie filtruje zmian określonego pliku, ale po prostu oferuje wszystkie kopie zapasowe, które ma, bez względu na to, czy plik się zmienił, czy nie.
AndreasM
4

TAK , można to zrobić, uzyskując listę wszystkich plików w każdej migawce, którą zajmuje duplikat (tj. Pierwsza pełna kopia zapasowa i każda kopia przyrostowa), a następnie porównaj listy plików i poszukaj określonego pliku, którego dotyczy problem z.

Chociaż nie pokaże wszystkich zmian w pliku, chyba że plik zmienia się rzadziej niż w przypadku kopiowania kopii, pokaże każdy stan pliku w każdym punkcie kopii zapasowej.

Aby to zrobić, napisałem skrypt powłoki.

Geoff
źródło
3
Geoff, to brzmi interesująco! Czy opublikowałeś skrypt? To wydaje się oczywistą kandydaturą do włączenia do standardowej dystrybucji.
Paul
3

Możesz spróbować zrzucić pełną listę plików, a następnie przeszukać tę listę w poszukiwaniu pliku:

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

To polecenie jest słabo udokumentowane, ale każda linia w pliku ma datę, która wydaje się być czasem ostatniej modyfikacji.

Xofer
źródło
Nie o to prosiłem, ale dziękuję za wysiłek!
Paul
Wygląda na to, że pokazuje znacznik czasu w i-węzle. Nie ostatni raz wsparła go podwójność. Jeśli więc ktoś zmieni plik i przywróci stary znacznik czasu modyfikacji, zmiana ta będzie niewidoczna dla tej metody.
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
źródło