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

Kann Plex eine GPU mit einem anderen Docker-Container gemeinsam nutzen?
Plex und ein weiterer Container können häufig auf dieselbe GPU zugreifen, aber du musst die Treiberunterstützung, die Gerätezuordnung, die Auslastung der Video-Engine, den Speicher...

So erkennst du, ob ein Plex-Fehler vom Client oder vom Server verursacht wird
Reproduziere dasselbe Element auf einem anderen Client, vergleiche den Sitzungspfad und sammle Serverbelege erst, nachdem der Geltungsbereich dir gezeigt hat, wo der Fehler tatsächlich...

So konfigurierst du den Plex-Cache und den temporären Transcodierungs-Speicher
Schütze den persistenten Plex-Zustand, indem du temporäre Transcodierungsdateien auf geeignetem lokalem Speicher ablegst, und überprüfe anschließend die Bereinigung, den freien Speicherplatz und das Verhalten...

