Контролировать каталог с помощью сценария оболочки
Я ищу команду оболочки как функцию inotify ядра.
Есть ли команда, которая будет контролировать каталог, который можно использовать так:
while [ 1 ]; do
name-of-monitor-program . && echo "something changed"
done
2 ответа
То, что вы ищете, является incron.
incron
а также incrontab
являются inotify
cron-приложения, которые вместо того, чтобы запускать события в зависимости от времени, следят за определенной папкой / файлом и запускают сценарии / команды на основе того, что происходит с этой папкой / файлом, и даже интерполируют имя этого файла / папки в команду.
События объясняются здесь: http://linux.die.net/man/5/incrontab
Типичный вариант использования будет "наблюдать за этой папкой для входящих файлов, выгружаемых через (S)FTP и транскодировать их", вместо того, чтобы иметь cron, который запускается каждую минуту и проверяет наличие новых файлов.
Также стоит отметить, что классы разработчиков incron
как программное обеспечение Альфа. Я использовал его в производственной среде раньше без проблем, но это стоит рассмотреть.
Я нашел iwatch
,
Я не знаю, почему я не думал делать apt-cache search inotify
прежде чем задать этот вопрос.
Вот как я это использовал:
iwatch -r -c "PATH=$PATH; program-i-wanted-to-run" .
Мне пришлось передать переменную среды PATH, потому что когда программа порождается, она не наследует переменные среды оболочки.