Ich denke, Sie können die -no-
Optionen verwenden, rsync
um den Besitz oder die Berechtigungen der Dateien, die Sie synchronisieren , NICHT zu kopieren.
Auszug aus der rsync-Manpage
--no-OPTION
You may turn off one or more implied options by prefixing the option
name with "no-". Not all options may be pre‐fixed with a "no-":
only options that are implied by other options (e.g. --no-D,
--no-perms) or have different defaults in various circumstances (e.g.
--no-whole-file, --no-blocking-io, --no-dirs). You may specify
either the short or the long option name after the "no-" prefix (e.g.
--no-R is the same as --no-relative).
For example: if you want to use -a (--archive) but don’t want -o
(--owner), instead of converting -a into -rlptgD, you could specify
-a --no-o (or -a --no-owner).
The order of the options is important: if you specify --no-r -a, the
-r option would end up being turned on, the opposite of -a
--no-r. Note also that the side-effects of the --files-from
option are NOT positional, as it affects the default state of several
options and slightly changes the meaning of -a (see the --files-from
option for more details).
Eigentum & Berechtigungen
Wenn Sie die Manpage durchsehen, möchten Sie meines Erachtens Folgendes verwenden:
$ rsync -avz --no-perms --no-owner --no-group ...
Um nicht vorhandene Dateien zu löschen, können Sie den --delete
Schalter verwenden:
$ rsync -avz --no-perms --no-owner --no-group --delete ....
Zeitstempel
Was den Zeitstempel betrifft, sehe ich keine Möglichkeit, dies beizubehalten, ohne zu ändern, wie Sie den Vergleich von SOURCE- und DEST-Dateien durchführen würden. Sie können festlegen rsync
, dass Zeitstempel mit dieser Option ignoriert werden sollen:
-I, --ignore-times
Normally rsync will skip any files that are already the same size
and have the same modification timestamp. This option turns off this
"quick check" behavior, causing all files to be updated.
Aktualisieren
--no-times
Tun Sie bei Zeitstempeln möglicherweise, wonach Sie suchen.
>f..T...
was darauf hindeutet, dass Dateiflags und Änderungszeitpunkte für das Ziel festgelegt wurden. Dies ist das, was ich vermeiden möchte.Ich denke, es ist einfacher, die Option -a zu vermeiden
und stellen Sie nur die gewünschten Optionen ein.
Wenn Sie alle Optionen, aber nicht die Änderungen von Benutzer -o , Gruppe -g , Zeit -t und Berechtigungen -p mögen , können Sie diese vier Optionen vom Archiväquivalent abziehen.
Um die Dateien am Zielort zu löschen, verwenden Sie bitte die Option --delete .
Zu Ihrer Frage: Aber ich denke, alle Dateien werden überprüft - rsync kann nicht nur Dateien übertragen / überprüfen, die sich nur durch den Inhalt geändert haben.
quelle
-l
ist für links,-D
geräte (gleich behandelt wie--specials
), ich denke-r
alleine reicht wenn wir inhaltlich reden.Ich denke, was Sie suchen, ist die Option
von der man Seite:
Wenn Sie wirklich Dateien löschen möchten, die im Quellverzeichnis fehlen, verwenden Sie
--delete
quelle
Sie können rsync zwingen, Überprüfungen zu ignorieren, die auf der Zeit und Größe der Dateimodifikation basieren, und mit der Option "-c" einen chksum-basierten Ansatz verwenden.
Dies bedeutet, dass die gesamte Datei in Chunks verglichen werden muss (und die relevanten Metadaten zwischen Quelle und Ziel hin und her übertragen werden müssen), unabhängig davon, ob Dateizeit und -größe übereinstimmen oder nicht, es werden jedoch nur die Chunks übertragen, die sich unterscheiden zwischen der Quelle und dem Ziel.
Die Verwendung dieses Schalters in Verbindung mit den anderen von anderen vorgeschlagenen Schaltern sollte das Kopieren einschränken (nur das Kopieren des Geänderten) und hat den Vorteil, dass eine Konsistenzprüfung zwischen Quelle und Ziel durchgeführt wird, ABER je nach Verbindungsgeschwindigkeit dauert dies länger es muss die Datei-Chunks auf beiden Seiten chksumieren und vergleichen).
quelle
Der folgende Befehl würde perfekt funktionieren, ich habe ihn für meine eigenen Anforderungen getestet, es wird nur die Änderung des Inhalts dauern.
quelle