Warum aktualisiert rsync NTFS-Verzeichnisse, wenn sich die Quelle nicht geändert hat?

Warum aktualisiert rsync NTFS-Verzeichnisse, wenn sich die Quelle nicht geändert hat?

Ich besuche Kurse mit viel phonetischer und grammatikalischer Analyse. Sie haben mir ein Konto in einem Windows 10-Netzwerk gegeben. Da ich mit Mac und Linux viel besser zurechtkomme (und da die Verfügbarkeitszeiten für Windows begrenzt sind), arbeite ich auf meinem Mac-Laptop.

Ich habe meine NTFS-Verzeichnisse automatisch gemountet, aber mit deren LAN stimmt etwas nicht, sodass einige Apps häufig nur Lesezugriff oder überhaupt keinen Zugriff haben.

Daher arbeite ich in einer lokalen Kopie undrsyncÄnderungen. Aber rsync* aktualisiert immer jedes NTFS-Verzeichnis – nur das Verzeichnis, niemals irgendwelche Dateien (außer denen, die ich tatsächlich geändert habe). In die meisten dieser Verzeichnisse bin ich noch nie navigiert,rsyncmeldet Aktualisierungen im gesamten Unterverzeichnisbaum. Es ist nicht schlimm – es ist in Sekunden erledigt – aber es ist trotzdem ziemlich seltsam.

Was machen Windows und NTFS mit Verzeichnissen, auf die nie zugegriffen wird, sodass rsync denkt, sie hätten sich geändert?

Antwort1

Vergleich von Mod-Zeiten mit reduzierter Genauigkeit zulassen

Bei dieser Art von Setup, bei dem Sie eine NTFS-Partition mounten, möchten Sie möglicherweise sicherstellen, dass Sie geeignete Parameter verwenden. Beispielsweise sollten Sie --modify-window=5den Standardwert erhöhen, um einen Vergleich der Mod-Zeiten mit reduzierter Genauigkeit zu ermöglichen.

--modify-window 

    When comparing two timestamps, rsync treats the timestamps as
    being equal if they differ by no more than the modify-window value. This 
    is normally 0 (for an exact match), but you may find it useful to set 
    this to a larger value in some situations. In particular, when
    transferring to or from an MS Windows FAT filesystem (which represents               
    times with a 2-second resolution), --modify-window=1 is useful (allowing 
    times to differ by up to 1 second).

Weitere Ressourcen

Antwort2

Zuerst muss ich das Problem mit dem schreibgeschützten Zugriff auf Programme beantworten. Da die Netzwerkfreigabe von Windows gesteuert wird, erteilt Windows nur bestimmten Benutzern Berechtigungen, um bestimmte Dinge zu tun. Es könnte sich um eine öffentliche Freigabe handeln, d. h. jeder kann sie anzeigen, um Dateien herunterzuladen usw., aber nicht ändern, es sei denn, er ist ausdrücklich dazu berechtigt. Da Sie einen Mac verwenden, der Linux ähnelt, verwendet nicht jede Linux-Anwendung, die Sie verwenden, denselben Benutzernamen, mit dem Sie derzeit auf Ihrem Mac oder Linux angemeldet sind. Da das Programm also nicht Ihren Benutzernamen verwendet, mit dem Sie angemeldet sind, hat es laut Windows keine Berechtigung, die Dateien zu bearbeiten, da der Benutzername nicht übereinstimmt.

Zweitens ist Rsync rekursiv. Das heißt, es durchläuft alle Verzeichnisse. Sofern Sie es nicht auf ein bestimmtes Verzeichnis beschränken, aber selbst wenn Sie es auf ein Verzeichnis beschränken, durchläuft es weiterhin alle Verzeichnisse, die sich in dem Verzeichnis befinden, aus dem es gestartet ist. Dafür ist es konzipiert. Daher wird es rekursive Synchronisierung genannt. Der Grund für die Aktualisierung der Verzeichnisse und nicht der Dateien könnte darin liegen, wie rysnc den Zeitstempel aus den Verzeichnissen erhält. Dies könnte daran liegen, dass seine Windows 10-Verzeichnisse keinen Änderungs- oder Zugriffszeitstempel haben, sondern nur einen Zeitstempel, wann das Verzeichnis erstellt wurde, während die Dateien alle diese Zeitstempel haben, die rsync verwendet, um zu bestimmen, ob es Verzeichnisse oder Dateien aktualisieren muss.

verwandte Informationen