Zeigen Sie geänderte Dateien nur während der Synchronisierung von ext4 zu NTFS an

9

Ich möchte, dass rsync geänderte und gelöschte Dateien druckt. Die ausführliche Option (-v) druckt geänderte Dateien, aber auch die Liste der Unterverzeichnisse, möglicherweise weil berührte Verzeichnisse als geändert gelten. Da ich viele Dateien aus vielen Unterverzeichnissen synchronisiere, ist es unmöglich, die tatsächlichen Änderungen zu sehen.

Gibt es eine Möglichkeit, Verzeichnisse nicht mit rsync zu drucken?

Ich bin nicht auf der Suche nach grep -v "*/$"Antworten, da dies auch neue Verzeichnisse ausschließen würde.

Befehl, den ich benutze: rsync -avh --delete /media/data/src /media/data/bkp

Und jedes Mal, wenn die Liste aller Verzeichnisse gedruckt wird:

src/dir1/

src/dir1/sdir1/

src/dir1/sdir2/

src/dir2/

EDIT: Ok, nach einigen intensiven Tests. Es werden nicht alle Verzeichnisse gedruckt, wenn von einer ext4-Partition zu einer ext4-Partition und von NTFS zu NTFS synchronisiert wird. Dies ist nur bei der Synchronisierung von ext4 zu NTFS möglich. Und Optionen -coder --omit-dir-timesändern Sie das nicht.

qox
quelle

Antworten:

4

Sie können versuchen, mithilfe des --omit-dir-timesSchalters die Verzeichniszeiten zu ignorieren (siehe Manpage rsync).

Ich persönlich finde, dass die Verwendung von -cswitch der beste Weg ist, um sicherzustellen, dass nur die Dateien, deren Inhalt geändert wurde, in der Ausgabe angezeigt werden.

Beachten Sie, dass die Verwendung -cvon rsync verlangsamt wird.

Marko Kudjerski
quelle
Danke für die Antwort. Es fällt mir schwer zu glauben, dass es nicht von Haus aus unterstützt wird, zumindest ohne an Leistung (oder Optionen) zu verlieren. Ich muss nur darauf vertrauen, dass es alles synchronisiert.
Qox
Entschuldigung, meine Bearbeitung hat die Frage nach Ihrer Antwort geändert.
Qox
1

Anstatt den Mount-Typ zu ändern, können Sie rsync auch anweisen, Dateiberechtigungen zu ignorieren, wenn Sie in ein Dateisystem kopieren, das dies nicht unterstützt. Der folgende Befehl funktioniert bei mir.

Von der rsync-Manpage:

Zusammenfassend: Verwenden Sie --perms, um den alten und neuen Zieldateien die Quellberechtigungen zu erteilen. Stellen Sie sicher, dass die Option --perms deaktiviert ist, und verwenden Sie --chmod = ugo = rwX (um sicherzustellen, dass alle nicht maskierten Bits aktiviert werden), um neuen Dateien die Standardberechtigungen für das Ziel zu erteilen (wobei vorhandene Dateien unverändert bleiben). Wenn Sie die Eingabe dieses letzteren Verhaltens vereinfachen möchten, können Sie einen Popt-Alias ​​dafür definieren, z. B. diese Zeile in die Datei ~ / .popt einfügen (im Folgenden wird die Option -Z definiert und --no- eingeschlossen. g, um die Standardgruppe des Zielverzeichnisses zu verwenden):

rsync alias -Z --no-p --no-g --chmod=ugo=rwX
flo
quelle
1

benutze nicht -a, es enthält -p -o -g.

netawater
quelle
Sie können weiterhin verwenden, -awenn Sie möchten, und dann hinzufügen --no-o --no-p --no-g, um Eigentümer, Gruppe und Berechtigungen wegzulassen.
Ian Dunn
0

Es scheint ein Berechtigungsproblem zu sein. Ich weiß nicht warum. Aber ich habe / etc / fstab für NTFS-Partitionen bearbeitet und es funktioniert jetzt wie erwartet, dh es werden keine Verzeichnisse gedruckt, die nicht geändert wurden.

Alter fstab-Eintrag: ntfs-3g-Benutzer, Standardeinstellungen, exec, uid = 1000 0 0

Neuer fstab-Eintrag: ntfs-3g-Benutzer, Standardeinstellungen, exec, uid = 1000, gid = 1000, dmask = 077, fmask = 137 0 0

Ich vermute (wer weiß ..), dass dmask = 077 den Trick gemacht hat, dh 'drwx ---' anstelle von 'drwxrwx'.

qox
quelle
-1

Ich benutzte:

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

Es ist ein Trockenlauf (Option n). Entfernen Sie diese Option, um rsynctatsächlich Dateien übertragen zu können.

user291372
quelle