Warum kopiert Rsync Dateien erneut, obwohl Größe und angezeigtes Datum übereinstimmen?

Eva Wong ist die Technische Redakteurin und und leidenschaftliche Tüftlerin bei ZimaSpace. Eine lebenslange Geek mit einer Leidenschaft für Homelabs und Open-Source-Software, sie spezialisiert sich darauf, komplexe technische Konzepte in zugängliche, praktische Anleitungenzu übersetzen. Eva ist der Meinung, dass Self-Hosting Spaß machen und nicht einschüchternd sein sollte. Durch ihre Tutorials befähigt sie die Community, Hardware-Setups zu entmystifizieren, vom Bau ihres ersten NAS bis hin zur Beherrschung von Docker-Containern.

Rsync kann Dateien erneut kopieren, deren sichtbare Größe und Datum übereinstimmen, wenn ihre unveränderten Änderungszeitpunkte, Vergleichsregeln oder Übertragungsoptionen dennoch abweichen.

Dateibrowser verbergen häufig Zeitstempel im Subsekundenbereich und zeigen nur ein gerundetes lokales Datum an, während Rsync die von den jeweiligen Endpunkten bereitgestellten Metadaten vergleicht. Außerdem kann Rsync so angewiesen werden, Zeitübereinstimmungen zu ignorieren, Prüfsummen zu vergleichen oder Metadaten zu aktualisieren. Ein Auftrag kann daher dieselbe für Menschen lesbare Größe und dasselbe Datum melden und die Datei dennoch auswählen, weil sich die Nanosekunden unterscheiden, ein Dateisystem die Zeit rundet, ein SMB-Client den Zeitstempel neu schreibt oder der Befehl die normale Schnellprüfung ausdrücklich umgeht.

Bestätigen, dass Rsync die Datei für die Datenübertragung auswählt

Führen Sie den Auftrag als Probelauf mit detaillierter Änderungsanzeige aus und speichern Sie den exakten Befehl, den Quellpfad, den Zielpfad, die Rsync-Versionen und einen repräsentativen Dateinamen.

Das offizielle Rsync-Handbuch erklärt, dass die standardmäßige Schnellprüfung Dateigröße und Änderungszeitpunkt vergleicht, während die detaillierte Ausgabe angibt, welche Attribute eine Aktualisierung verursacht haben.

Wenn der detaillierte Code nur Änderungen an Berechtigungen, Eigentümer, Gruppe, ACL oder erweiterten Attributen anzeigt, wird die Datei möglicherweise erneut verarbeitet, ohne ihre vollständigen Inhalte zu übertragen.

Unveränderte Änderungszeitpunkte statt des angezeigten Datums vergleichen

Lesen Sie die Änderungszeitpunkte von Quelle und Ziel mit Nanosekundenpräzision aus und vergleichen Sie ihre numerischen Epoch-Werte auf den Systemen, die Sender und Empfänger ausführen.

Die Linux-stat-Struktur unterstützt Zeitstempel mit Nanosekundenauflösung, sodass zwei Dateien, die in derselben Sekunde angezeigt werden, dennoch unterschiedliche Werte haben können.

Ein Browser, der nur Minuten oder Sekunden anzeigt, kann nicht beweisen, dass die zugrunde liegenden Änderungszeitpunkte übereinstimmen. Notieren Sie die unveränderten Werte, bevor Sie die Dateien erneut bearbeiten.

Zeitstempelgenauigkeit und das Änderungsfenster prüfen

Ermitteln Sie jedes Dateisystem im Pfad, einschließlich FAT, exFAT, NTFS, SMB, NFS, der Archivextraktion und entfernbarer Zwischenvolumes.

Das Debian-Rsync-Handbuch dokumentiert das Verhalten von modify-window, einschließlich der Toleranz für Dateisysteme, die keine identische Zeitstempelgenauigkeit speichern können.

Verwenden Sie ein Zeitfenster ungleich null erst, nachdem Sie die Differenz gemessen haben. Ein zu großzügiges Fenster kann eine tatsächlich geänderte Datei mit gleicher Größe verbergen.

Flags prüfen, die die normale Schnellprüfung außer Kraft setzen

Prüfen Sie den vollständigen geplanten Befehl sowie jedes Wrapper-Skript, jede NAS-Oberfläche, Umgebungsvariable, Include-Datei oder Voreinstellung, die Optionen hinzufügt.

Die Ubuntu-Rsync-Referenz erklärt, dass ignore-times Aktualisierungen erzwingt, der Prüfsummenmodus den Zeitvergleich ersetzt und size-only den Änderungszeitpunkt ignoriert.

Entfernen Sie nur das nachweislich verantwortliche Flag. Der Prüfsummenmodus kann umfangreiche Lesevorgänge verursachen, selbst wenn nur wenige Daten über das Netzwerk übertragen werden.

Prüfen, ob SMB oder Windows den Zielzeitpunkt neu schreibt

Erstellen Sie unmittelbar nach der Übertragung, nach dem Schließen der SMB-Sitzung und nach dem erneuten Öffnen von einem anderen Client einen Hash und Zeitstempel des Ziels.

Microsoft dokumentiert, dass Anwendungen Dateizeitstempel setzen und auslesen können, während Dateisysteme und Anwendungen einzelne Felder nach unterschiedlichen Zeitplänen aktualisieren können.

Wenn sich der Zielzeitpunkt erst ändert, nachdem ein Indexer, eine Medien-App, ein Cloud-Client oder ein SMB-Workflow darauf zugegriffen hat, korrigieren Sie diesen Schreibvorgang statt Rsync.

Änderungszeitpunkt von anderen Metadaten trennen

Vergleichen Sie Änderungszeitpunkt, Zeitpunkt der Statusänderung, Berechtigungen, Eigentümer, ACLs, erweiterte Attribute, Hardlinks und symbolische Links.

Das stat-Dienstprogramm von NetBSD stellt unveränderte Dateistatusfelder bereit und hilft dabei, den Zeitpunkt einer Inhaltsänderung von anderen Metadatenänderungen zu unterscheiden.

Optionen für Archive, ACLs, erweiterte Attribute, Eigentümer oder Gruppen können Metadatenänderungen auslösen. Lesen Sie den detaillierten Code, anstatt jeden aufgeführten Pfad als vollständige Inhaltsübertragung zu betrachten.

Einen Ein-Datei-Test ausführen und die kleinste nachgewiesene Abweichung beheben

Kopieren Sie eine geschlossene Testdatei, behalten Sie die gewünschten Metadaten bei, führen Sie denselben Befehl erneut aus und vergleichen Sie die detaillierte Ausgabe, die übertragenen Bytes und die unveränderten Zeitstempel.

Der ZimaSpace-Artikel zu unerwartet großen inkrementellen Backups behandelt umfassendere Ursachen in Backup-Ketten; dieser Artikel grenzt die Dateiauswahlregeln von Rsync ein.

Das Problem ist behoben, wenn ein erneuter Lauf ohne Änderungen die Testdatei überspringt oder nur die von Ihnen absichtlich konfigurierte Metadatenaktualisierung ausführt.

Häufig gestellte Fragen

Warum sehen die Daten im Dateibrowser identisch aus?

Der Browser rundet möglicherweise auf Sekunden oder Minuten und zeigt die lokale Zeit an, während Rsync einen genaueren Änderungszeitstempel erhält.

Verhindert der Prüfsummenmodus unnötige Kopien?

Er kann eine Übertragung vermeiden, wenn die Inhalte trotz unterschiedlicher Zeitpunkte übereinstimmen, muss jedoch gleich große Dateien auf beiden Seiten lesen und hashen.

Können Zeitzonen wiederholte Rsync-Übertragungen verursachen?

Eine reine Zeitzonenanzeige sollte numerische Zeitstempel nicht verändern, aber Anwendungen oder Dateisysteme, die sie umrechnen oder runden, können dies tun.

Support & Tipps

Mehr zum Lesen

Get More Builds Like This

Stay in the Loop

Get updates from Zima - new products, exclusive deals, and real builds from the community.

Stay in the Loop preferences

We respect your inbox. Unsubscribe anytime.