El script inotifywait provoca un bucle recursivo

El script inotifywait provoca un bucle recursivo

Tengo un script inotifywait que monitorea un directorio de carga ftp y cada vez que se carga un archivo nuevo establece los permisos correctos.

Hago esto porque el cliente remoto fuerza modos de archivo incorrectos y evitar que el servidor ftp acepte comandos chmod hace que el cliente remoto escupe errores falsos.

Entonces mi último recurso es un script inotify pero eso causa otro problema más, aquí está:

#!/bin/bash
inotifywait -mrq -e ATTRIB --format "%w%f" /home/user/upload/ | while read FILE; do 
  if [[ -f "$FILE" ]];then
    chown user:apache "$FILE" && chmod 640 "$FILE"
  fi
done

Así que supongo que lo que sale mal aquí es que una vez que el cliente carga y modifica el archivo, la opción ATTRIB se activa (como se supone que debe hacerlo), pero el chmod resultante en mi propio script hace que la opción ATTRIB se active nuevamente... provocando un bucle recursivo.

¿Hay alguna manera de dejar claro a inotifywait que debe ignorar sus propias acciones para evitar este bucle?

Respuesta1

En lugar de inotifywaitesperar -e attrib, deberías estar esperando -e modify.

   modify
   A watched file or a file within a watched directory was written to.

   attrib
   The metadata of a watched file or a file within a watched directory was modified.  This includes timestamps,  file permissions, extended attributes etc.

información relacionada