Kein Änderungsereignis an inotifywait senden, wenn die Datei geöffnet wird

Kein Änderungsereignis an inotifywait senden, wenn die Datei geöffnet wird

Ich verwende VSC als Editor unter Windows 10 Pro und möchte bei Dateiänderungen eine Synchronisierung mit einem Remote-Server durchführen.

Ich habe WSL mit einem Debian-Gastsystem installiert

Wenn ich dieses Skript ausführe

while inotifywait -r -e modify,create,delete /path/to/folder; do
  rsync -rltzv --progress --chmod=0600 --exclude=.git/ --exclude=.vscode /path/to/folder [email protected]:~/remote/folder;
done;

Das rsync wird nicht nur gestartet, wenn ich eine Datei in VSC speichere, sondern auch, wenn ich sie öffne. Das ist zwar nicht kritisch, aber es ist ärgerlich und eine Verschwendung von Bandbreite.

Kann ich etwas dagegen tun?

Bearbeiten

Ich weiß nicht, woran das liegt, aber das Problem scheint bei mir mit meinen Einstellungen nicht mehr aufzutreten. Ich habe aber nichts geändert

Antwort1

Sie überwachen zu viele Ereignisse[*]. Die Ereignisse, die wichtig sind, sind:

  • CLOSE_WRITE, da das Einfügen von Daten in Dateien das Schließen dieser Dateien erfordert. Sie können auch davon ausgehen, dass sich die Datei zu diesem Zeitpunkt in einem konsistenten Zustand befindet.
  • DELETEfür Dateien, die entfernt werden
  • MOVED_TO, MOVED_FROMfür Dateien, die zum Baum hinzugefügt, aus ihm verschoben oder einfach umbenannt werden.

[*] Beispielsweise MODIFYpassiert dies experimentell viele Male (wahrscheinlich bei jedem Schreibvorgang in der Datei) und das Kopieren der Datei an diesem Punkt könnte eine Datei in einem inkonsistenten Zustand kopieren. Dies OPENpassiert auch, wenn Sie später keine Änderungen vornehmen.

verwandte Informationen