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

1099
WGroleau

Ich nehme Unterricht mit viel phonetischer und grammatikalischer Analyse. Sie haben mir ein Konto in einem Windows 10-Netzwerk gegeben. Da ich mit Mac und Linux viel zufriedener bin (und die Windows-Verfügbarkeitszeiten begrenzt sind), erledige ich meine Arbeit auf meinem Mac-Laptop.

Ich habe meine NTFS-Verzeichnisse automatisch gemountet, aber es gibt etwas Flockiges in ihrem LAN, so dass einige Apps oft nur Lesezugriff haben oder überhaupt keinen Zugriff haben.

Folglich arbeite ich in einer lokalen Kopie und ändert häufig Rsync . Rsync * aktualisiert jedoch immer jedes NTFS-Verzeichnis - nur das Verzeichnis, niemals Dateien (außer den Dateien, die ich tatsächlich geändert habe). Die meisten dieser Verzeichnisse, in die ich noch nie navigiert habe, werden von rsync bis hinunter in die Verzeichnisstruktur der untergeordneten Verzeichnisse aktualisiert. Es ist nicht wichtig - endet in Sekunden -, aber es ist immer noch ziemlich seltsam.

Was tun Windows und NTFS für Verzeichnisse, auf die niemals zugegriffen wird, so dass Rsync der Meinung ist, dass sie sich geändert haben?

2
Nun, das ist es auch nicht. Es ist verrückt. Ich bemerkte, dass nicht besuchte Verzeichnisse erneut aktualisiert wurden, und ich wiederholte sofort den Befehl rsync. Keine Verzeichnisse! Dann habe ich mich an der Windows-Maschine angemeldet, während ich Rsync auf dem Mac wiederholte. Sobald der Windows-Desktop angezeigt wird, hat rsync alle diese Verzeichnisse sofort aktualisiert. Dies wurde jedoch fortgesetzt, solange Windows angemeldet war. Nun, dachte ich, vielleicht verschwendet es CPU-Zeit für unnötige Aktualisierungen. Also habe ich mich abgemeldet. rsync _continues_ zum Aktualisieren dieser Verzeichnisse! Also bin ich wieder am Anfang, dh DUNNO. WGroleau vor 7 Jahren 0
Durch das Hinzufügen des Änderungsfensters in „rsync -av --bwlimit = 200 --delete --modify-window = 5 (HFS +) (NTFS)“ wurde die Aktualisierung nicht besuchter Verzeichnisse beendet. Aber einen Tag später tat es es wieder. Eine sofortige Wiederholung hat sie nicht aktualisiert. Durch die Anmeldung bei Windows wurde dies erneut möglich. ABER seitdem passiert es JEDES Mal, ob bei Windows angemeldet ist oder nicht. Auch wenn die rsync-Befehle nur eine Sekunde voneinander entfernt sind. Auch bei den unnötigen Updates dauert es nur eine Sekunde, daher ist es keine große Sache. Das Lesen der Dateiliste ist jedoch weniger bequem. WGroleau vor 7 Jahren 0

3 Antworten auf die Frage

1
Pimp Juice IT

Vergleich der Mod-Zeiten mit reduzierter Genauigkeit

Es erscheint in dieser Art von Setup, bei dem Sie auf eine NTFS-Partition mounten, die Sie sicherstellen möchten, dass Sie geeignete Parameter verwenden, z. B. --modify-window=5den Standardwert erhöhen, um einen Vergleich der Mod-Zeiten mit verringerter 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

Die erste Antwort stoppte das seltsame Verhalten vorübergehend, also akzeptierte ich es. Dann kam das seltsame Verhalten zurück und ich dachte, ich habe herausgefunden, dass das Einloggen in Windows den Zeitstempel verändert hat. Aber das stellte sich als falsch heraus, also dachte ich, das Abmelden von Windows würde aufhören, Zeitstempel zu ändern, aber das lief auch nicht aus. Ich habe die Antwort widerwillig nicht akzeptiert, denn obwohl der Ratschlag von PJI einen Tag lang funktioniert hat, funktioniert er nicht mehr. Und ich kann Bill Gates nicht mehr die Schuld geben - er zog sich vor mir zurück. WGroleau vor 7 Jahren 0
@WGroleau Ich habe gerade eine weitere Antwort hinzugefügt, die Sie möglicherweise bei der Lösung Ihres Problems hilfreich finden. Lass mich wissen, wie es geht. Dies ist etwas gleichbedeutend mit dem `Robocopy / FFT'-Schalter, den ich vorhin hinzugefügt habe, als ich verwirrt wurde und dann den entfernt habe, als ich es merkte. . . Rsync nicht Robocopy, d'oh .... Pimp Juice IT vor 7 Jahren 0
Die Schule hatte auch einen Auftrag für ein Terabyte "OneDrive" erhalten, also entschied ich mich, das auszuprobieren. Es ist auch irgendwie scheiße. Sagt, dass alles aktuell ist, wenn nicht. Das Drucken einer einseitigen PDF-Datei aus dem lokalen Windows dauert einige Sekunden. Um dies mit OneDrive zu tun, dauert es mehr als eine Minute. Aber sie lassen mich nicht Dropbox installieren. WGroleau vor 7 Jahren 0
0
Frostalf

Erstens, um das schreibgeschützte Problem des Programms zu beantworten. Da die Netzwerkfreigabe von Windows gesteuert wird, gewährt Windows nur bestimmten Benutzern die Berechtigung zum Ausführen von Aufgaben. Es kann eine öffentliche Freigabe sein, dh jeder kann es anzeigen, um Dateien herunterzuladen ect, aber es nicht ändern, es sei denn, es wurde ausdrücklich hinzugefügt, um dies tun zu können. Da benutzt du einen Mac, der Linux ähnelt. Nicht jede Linux-Anwendung, die Sie verwenden, verwendet denselben Benutzernamen, mit dem Sie derzeit auf Ihrem Mac oder Linux angemeldet sind. Da das Programm Ihren angemeldeten Benutzernamen nicht verwendet, hat es nicht das Recht, die Dateien gemäß Windows zu bearbeiten, da der Benutzername nicht übereinstimmt.

Zweitens ist Rsync rekursiv. Das heißt, es wird alle Verzeichnisse durchgehen. Wenn Sie es nicht auf ein bestimmtes Verzeichnis beschränken, aber selbst wenn Sie es auf ein Verzeichnis beschränken, werden alle Verzeichnisse durchlaufen, die sich in dem Verzeichnis befinden, in dem es gestartet wurde. Dies ist, was es zu tun beabsichtigt. Daher heißt es rekursive Synchronisation. Nun könnte der Grund für die Aktualisierung der Verzeichnisse und nicht der Dateien darin liegen, wie rysnc den Zeitstempel aus den Verzeichnissen erhält. Da die Windows 10-Verzeichnisse keinen geänderten oder abgerufenen Zeitstempel haben, kann es sein, dass nur ein Zeitstempel des Zeitpunkts, zu dem das Verzeichnis erstellt wurde, vorhanden ist, während die Dateien alle diese Zeitstempel haben. Dies ist, was rsync verwendet, um zu ermitteln, ob Verzeichnisse aktualisiert werden müssen Dateien.

Es waren die Zeitstempel. Aber dein erster Teil macht keinen Sinn. Die Verzeichnisse werden automatisch eingebunden. Das bedeutet, Samba erhält Benutzernamen und Kennwort von meinem Betriebssystem, NICHT von jeder einzelnen App. Zweitens sagte ich "ziemlich oft", nicht "immer". Mac OS ändert meinen Benutzernamen oder mein Kennwort nicht zufällig und Windows sollte dies nicht tun. Das Zugriffsproblem tritt sowohl bei der öffentlichen Freigabe als auch bei dem Verzeichnis auf, das angeblich allein meines ist. Außerdem ist es manchmal schreibgeschützt, manchmal überhaupt nicht zugänglich. Da sich die Symptome so oft ändern, stehe ich zu meinem "etwas flockigen LAN". WGroleau vor 7 Jahren 0
Mac OS arbeitet ähnlich wie Linux. Unter Linux läuft nicht die gesamte installierte Software unter demselben Benutzernamen, unter dem Sie angemeldet sind. In dem Beispiel, in dem Apache Web Server installiert ist, wird standardmäßig der Benutzer www-data verwendet. Sie können es jedoch weiterhin unter Ihrem aktuell angemeldeten Benutzernamen verwenden. Wenn nun bei Windows-Freigaben das Programm nicht unter Ihrem aktuell angemeldeten Benutzernamen ausgeführt wird. Dies ist, was die Windows-Freigabe erwartet, die Freigabe zu verwenden, könnte es andere Berechtigungen geben. Es hängt auch davon ab, wie Samba konfiguriert ist. Frostalf vor 7 Jahren 0
(1) Für keine meiner Anwendungen ist das Sticky-Bit gesetzt. Sie laufen alle wie ich. (2) Wenn es sich um einen Berechtigungsfehler handelt, würde dies jedes Mal anstelle von manchmal keinem Problem, manchmal Berechtigungen, manchmal anderen kryptischen Nachrichten, dies sagen. (3) Wenn es sich um einen Berechtigungsfehler handelt, funktioniert rsync ebenfalls nicht. WGroleau vor 7 Jahren 0
Die dritte ist nicht ganz richtig, wenn Sie Dateien in die andere Richtung senden, ja, um Nein zu erhalten, da Sie alles in die Richtung auf Ihren Computer rsyncieren können, vorausgesetzt, es kann die Verzeichnisse lesen. Sowieso außer dem Punkt. Dann würde ich Ihre Samba-Konfiguration überprüfen, um sicherzustellen, dass sie korrekt ist. Windows hat verschiedene Varianten des Dateifreigabeprotokolls, daher ist es möglich, dass Samba eine ältere Version des Windows-Protokolls verwendet. Nicht ganz sicher Es lohnt sich auf jeden Fall, sicherzustellen, dass Ihre Einstellungen nicht das Problem sind. Das andere Problem könnte durch die Anwendungen verursacht werden, entweder einen Fehler oder etwas anderes. Frostalf vor 7 Jahren 0
Ich habe zwei Verzeichnisse auf derselben Festplatte auf demselben Server, die mit derselben Syntax gemountet sind. Die beiden verhalten sich nicht immer gleich oder fünf Minuten zuvor, wenn sich / etc / auto_smb nicht geändert hat. Ein Fehler in der Syntax dieser Datei führt nicht dazu, dass sie zeitweise funktioniert. Das Netzwerk ist flockig. WGroleau vor 7 Jahren 0
0
Pimp Juice IT

Schließen Sie die -a impliziten Optionen explizit mit aus--no-OPTION

Kommentar:

Durch das Hinzufügen des Änderungsfensters in „rsync -av --bwlimit = 200 --delete --modify-window = 5 (HFS +) (NTFS)“ wurde die Aktualisierung nicht besuchter Verzeichnisse beendet. Aber einen Tag später tat es es wieder . Eine sofortige Wiederholung hat sie nicht aktualisiert. Durch die Anmeldung bei Windows wurde dies erneut möglich. ABER seitdem passiert es JEDES Mal, ob bei Windows angemeldet ist oder nicht. Auch wenn die rsync-Befehle nur eine Sekunde voneinander entfernt sind. Auch bei den unnötigen Updates dauert es nur eine Sekunde, daher ist es keine große Sache. Das Lesen der Dateiliste ist jedoch weniger bequem. WGroleau

Erwägen Sie das Testen mit diesen Optionen für eine Lösung:

  •  --size-only skip files that match in size -c, --checksum skip based on checksum, not mod-time & size -O, --omit-dir-times omit directories from --times 

    Quelle


Zusätzlich. . .

Since -a( --archive) enthält implizite Optionen und entspricht den -rlptgoDOptionen:

  • -r, --recursive recurse into directories -l, --links copy symlinks as symlinks -p, --perms preserve permissions -t, --times preserve modification times -g, --group preserve group -o, --owner preserve owner (super-user only) -D same as --devices --specials 

    Quelle

Sie müssen möglicherweise einige dieser Optionen explizit weglassen, --no-OPTIONum sicherzustellen, dass bestimmte Attribute [ignoriert] werden und nicht zwischen diesen beiden unterschiedlichen Dateisystemen verglichen werden, die Sie synchronisieren.

Fügen Sie zum Beispiel eines davon hinzu:

  • --no-o ignoriert das Besitzerattribut
  • --no-g ignoriert das Gruppenattribut
  • --no-times ignoriert Zeitattribute

Wichtig: Die Reihenfolge der Optionen ist wichtig: Wenn Sie angeben --no-r -a, wird die -rOption aktiviert, das Gegenteil von -a --no-r.

  • --no-OPTION  You may turn off one or more implied options by prefixing the option name with lqno-rq. Not all options may be prefixed with a lqno-rq: 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 lqno-rq 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). 

    Quelle


Weitere Ressourcen

Da OneDrive scheiße ist, kann ich mir das genauer ansehen. Ich habe gerade diese verwandte Frage entdeckt: http://superuser.com/questions/716549/rsync-on-ntfs-permissions?rq=1 WGroleau vor 7 Jahren 0
@WGroleau Ich bin sicher an Ihrer endgültigen Arbeitslösung interessiert. Viel Glück!! Ich habe versucht zu helfen! Pimp Juice IT vor 7 Jahren 0
Der traurige Teil ist, dass der einzige Grund, warum ich Windows überhaupt anfasse, darin besteht, die Ergebnisse meiner Arbeit auf einem Mac zu drucken. Der Versuch, über Samba / WiFi auf Netzwerkdrucker zuzugreifen, ist noch schlimmer als der Zugriff auf den Dateiserver. Ich bin mir sicher, dass sie Robocopy nicht benutzen werden. Ich denke, meine Lösung könnte sein, einen eigenen Drucker zu kaufen. WGroleau vor 7 Jahren 0
@WGroleau Schnelle Paarideen für den einfachen Test (ich werde gerne eine Antwort aktualisieren, wenn sie funktioniert), aber überprüfen Sie die Verwendung dieser beiden Rsync-Optionen, wenn Sie die Chance haben, `rsync -av --bwlimit = 200 --delete - -checksum (HFS +) (NTFS) `oder` rsync -av --bwlimit = 200 --delete --omit-dir-times --modify-window = 5 (HFS +) (NTFS) ` Pimp Juice IT vor 7 Jahren 0
Ich hätte es fast getan. Zum Glück stellte ich fest, dass ich bereits Dinge für OneDrive umgestellt hatte. Wenn ich es jetzt ausführen würde, würde ich versuchen, Desktop, Dokumente und Favoriten auf der Fensterseite zu löschen! Wenn OneDrive sich weiterhin schlecht benimmt, gehe ich einfach zu Walmart und kaufe etwas Papier für den nicht vernetzten Drucker unten im Wohnheim. Ich schätze jedoch den Versuch. Vielleicht muss ich es eines Tages noch einmal machen. WGroleau vor 7 Jahren 0
@WGroleau Hört sich gut an, vielleicht wird es jemand anderem helfen; Es ist schwer, wenn Sie nicht da sind und es nicht sehen können, aber gemäß den Dokumenten sollten einige dieser Optionen bei dem, was Sie erklärt haben, hilfreich sein. Pimp Juice IT vor 7 Jahren 0