Установка
sudo apt install php php-dev
sudo pecl install inotify
Запустите эти команды, чтобы добавить расширение в PHP CLI. Предполагается что используется версия php 7.4. Если другая, укажите свою
sudo nano /etc/php/7.4/mods-available/inotify.ini
Вставьте эту строку extension=inotify.so
и сохраните изменения
sudo phpenmod inotify
Теперь проверяем что все работает нормально:
В терминале ввести php -r "var_dump(function_exists('inotify_init'));"
Ответ должен быть: bool(true
Пример работы
Запустите в терминале команду
inotifywait -r /var/www/html/ftp -e create,modify,close_write,moved_to
Добавьте в директорию /var/www/html/ftp
любой файл
Ответ будет приблизительно следующий
/var/www/html/ftp MOVED_TO 1.jpg
Проверялось на Ubuntu Server 20.04
Примеры использования
- Запустить произвольную команду после события в inotifywait
inotifywait
будет работать в фоне, и при изменении или создании нового файла в директории/var/www/html/records
запустит командуcurl
чтобы отправить запрос на сайт. Вместоcurl "http://127.0.0.1/progress/test.php"
можно указать любую другую команду.&
— указывает что это должно выполнятся в фоновом режимеinotifywait -r -m -e create,modify,close_write,moved_to /var/www/html/records | while read file; do curl "http://127.0.0.1/progress/test.php"; done &