No envíe el evento de modificación a inotifywait si se abre el archivo

No envíe el evento de modificación a inotifywait si se abre el archivo

Utilizo VSC como editor en Windows 10 Pro y quiero sincronizar con un servidor remoto al cambiar el archivo.

Instalé WSL con un sistema invitado Debian

Si ejecuto este script

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;

El rsync se inicia no solo cuando guardo un archivo en VSC, sino también cuando lo abro. Si bien esto no es crítico, es molesto y una pérdida de ancho de banda.

¿Puedo hacer algo contra eso?

Editar

No sé qué causó esto, pero el problema ya no parece ocurrir en mi máquina con mi configuración. Pero no cambié nada

Respuesta1

Estás monitoreando demasiados eventos[*]. Los eventos que importan son:

  • CLOSE_WRITE, porque poner datos en archivos requiere cerrarlos. También puede considerar que el archivo se encuentra en un estado consistente en ese momento.
  • DELETE, para archivos que se eliminan
  • MOVED_TO, MOVED_FROMpara archivos que se agregan al árbol, se sacan de él o simplemente se les cambia el nombre.

[*] Por ejemplo, de manera experimental, MODIFYesto sucede muchas veces (probablemente para cada operación de escritura en el archivo) y copiar el archivo en ese punto podría copiar un archivo en un estado inconsistente. Lo mismo OPENocurre incluso si no realiza ningún cambio más adelante.

información relacionada