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