Inotify — отслеживать изменения файловых систем

Установка

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

Примеры использования

  1. Запустить произвольную команду после события в 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 &
Back to Top
Ads Blocker Image Powered by Code Help Pro

Ads Blocker Detected!!!

We have detected that you are using extensions to block ads. Please support us by disabling these ads blocker.

Powered By
Best Wordpress Adblock Detecting Plugin | CHP Adblock