inotifywait ne réagit pas à la création de fichier par apache

J’ai un script qui est censé copier les photos téléchargées par les utilisateurs admin sur notre site Web vers deux autres serveurs principaux. Pour ce faire, il effectue les opérations suivantes:

while true; do inotifywait -e create "$TRANSFER_FILES" && \ sleep 20 && \ copy_files "$SSH_SERVER_1" "$REMOTE_DIR_1" && \ copy_files "$SSH_SERVER_2" "$REMOTE_DIR_2" sleep 2 done 

Le sleep 20 doit donner le temps nécessaire pour redimensionner les images téléchargées.

Le problème:

Si je crée un fichier dans le répertoire $ TRANSFER_FILES (qui se trouve sur un système de fichiers local), en tant qu’utilisateur root ou apache, avec touch ou cat ou autre, inotifywait reçoit le CREATE evenc et la fonction copy_files (wrapping rsync) est appelée. Cependant, lorsque le processus apache crée les fichiers, rien ne se produit.

Pas de réponse directe à votre question, mais vous devriez envisager d’utiliser lsyncd . Il fait exactement ce que vous essayez de faire: il attend via inotify, puis lance la synchronisation (par défaut avec rsync). C’est un démon autonome, bien testé.