Pokaż tylko zmienione pliki podczas synchronizacji z ext4 do NTFS

9

Chciałbym, aby rsync drukował zmodyfikowane i usunięte pliki. Opcja verbose (-v) drukuje zmodyfikowane pliki, ale także listę podkatalogów, być może dlatego, że dotknięte katalogi są uważane za zmodyfikowane. Ponieważ synchronizuję wiele plików z wielu podkatalogów, nie można zobaczyć rzeczywistych zmian.

Czy istnieje sposób, aby nie drukować katalogów za pomocą rsync?

Nie szukam grep -v "*/$"odpowiedzi, ponieważ wykluczałoby to także nowe katalogi.

Polecenie, którego używam: rsync -avh --delete /media/data/src /media/data/bkp

I za każdym razem drukuje listę wszystkich katalogów:

src/dir1/

src/dir1/sdir1/

src/dir1/sdir2/

src/dir2/

EDYCJA: Ok, po kilku intensywnych testach .. Nie drukuje wszystkich katalogów podczas synchronizacji z partycji ext4 na ext4 i od NTFS do NTFS. Dzieje się tak tylko podczas synchronizacji z ext4 do NTFS. I opcje -club --omit-dir-timesnie zmieniaj tego.

qox
źródło

Odpowiedzi:

4

Możesz spróbować użyć --omit-dir-timesprzełącznika, aby zignorować czasy w katalogu (spójrz na stronę manuala rsync).

Osobiście uważam, że użycie -cprzełącznika jest najlepszym sposobem, aby upewnić się, że tylko pliki, których zawartość została zmieniona, pojawią się w wynikach.

Zauważ, że użycie -cspowolni rsync.

Marko Kudjerski
źródło
Dziękuję za odpowiedź. Trudno mi uwierzyć, że nie jest natywnie obsługiwany, przynajmniej bez utraty wydajności (lub opcji). Muszę tylko zaufać, że wszystko zsynchronizuje.
qox
Przepraszam, moja edycja zmieniła pytanie po twojej odpowiedzi.
qox
1

Zamiast zmieniać typ montowania, możesz także powiedzieć rsync, aby ignorował uprawnienia do plików podczas kopiowania do systemu plików, który go nie obsługuje. Następujące polecenie działa dla mnie.

Ze strony man rsync:

Podsumowując: aby nadać plikom docelowym (starym i nowym) uprawnienia źródłowe, użyj --perms. Aby nadać nowym plikom domyślne uprawnienia miejsca docelowego (pozostawiając niezmienione istniejące pliki), upewnij się, że opcja --perms jest wyłączona, i użyj opcji --chmod = ugo = rwX (co zapewnia włączenie wszystkich niemaskowanych bitów). Jeśli chcesz ułatwić to drugie zachowanie, możesz dla niego zdefiniować popt alias, na przykład umieszczając ten wiersz w pliku ~ / .popt (poniżej zdefiniowano opcję -Z i zawiera --no- g, aby użyć domyślnej grupy docelowego katalogu):

rsync alias -Z --no-p --no-g --chmod=ugo=rwX
flo
źródło
1

nie używaj -a, zawiera -p -o -g.

woda netto
źródło
Możesz nadal używać, -ajeśli chcesz, a następnie dodać, --no-o --no-p --no-gaby pominąć właściciela, grupę i uprawnienia.
Ian Dunn
0

Wygląda na to, że to był problem z pozwoleniem. Nie jestem pewien, dlaczego ... Ale edytowałem / etc / fstab dla partycji NTFS i teraz działa zgodnie z oczekiwaniami, tj. Nie drukuje katalogów, które nie zostały zmodyfikowane.

Stary wpis fstab: użytkownicy ntfs-3g, domyślne, exec, uid = 1000 0 0

Nowy wpis fstab: użytkownicy ntfs-3g, domyślne, exec, uid = 1000, gid = 1000, dmask = 077, fmask = 137 0 0

Zgaduję (kto wie ..) dmask = 077 zrobił lewę, tj. „Drwx ---” zamiast „drwxrwx”.

qox
źródło
-1

Użyłem:

sudo rsync -auzhni --progress --omit-dir-times --no-o  src_dir/ dst_dir 

Jest to praca próbna (opcja n). Usuń tę opcję, aby rsyncfaktycznie przesyłać pliki.

użytkownik291372
źródło