O script inotifywait causa loop recursivo

O script inotifywait causa loop recursivo

Eu tenho um script inotifywait que monitora um diretório de upload de FTP e sempre que um novo arquivo é carregado ele define as permissões corretas.

Faço isso porque o cliente remoto força modos de arquivo incorretos e impede que o servidor FTP aceite comandos chmod faz com que o cliente remoto gere erros falsos.

então meu último recurso é um script inotify, mas isso causa outro problema, aqui 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

então, acho que o que está errado aqui é que, uma vez que o arquivo é carregado e chmodded pelo cliente, a opção ATTRIB é acionada (como deveria), mas o chmod resultante em meu próprio script faz com que a opção ATTRIB seja acionada novamente... causando um loop recursivo.

existe uma maneira de deixar claro para o inotifywait que ele deve ignorar suas próprias ações evitando esse loop?

Responder1

Em vez de inotifywaitesperar -e attrib, você deveria 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.

informação relacionada