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). Это автономный демон, хорошо проверенный.