inotifywait не реагирует на создание файла apache

У меня есть скрипт, который должен копировать фотографии, загруженные администраторами на наш сайт, на два других серверных сервера. Для этого он делает следующее:

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

Сон 20 должен дать apache время для изменения размера загруженных изображений.

Эта проблема:

Если я создаю файл в каталоге $TRANSFER_FILES (который находится в локальной файловой системе), будь то пользователь root или пользователь apache, с помощью touch, cat или чего-то еще, inotifywait получает CREATE evenc и вызывается функция copy_files (wrapping rsync). Однако, когда процесс apache создает файлы, ничего не происходит.

1 ответ

Не прямой ответ на ваш вопрос, но вы должны рассмотреть возможность использования lsyncd. Он делает именно то, что вы пытаетесь сделать: он ждет через inotify и затем запускает синхронизацию (по умолчанию rsync). Это автономный демон, хорошо проверенный.

Другие вопросы по тегам