студия открытых решений о-никс
<< Пакетное изменение изображений

incron

В Linux существует замечательный пакет утилит incron, позволяющий запускать скрипты по событиям на файловой системе, используя систему уведомлений ядра Linux inotify.

То есть, по таким событиям, как создание, открытие/закрытие, изменение файлов/директорий или их атрибутов, можно запускать свои обработчики.

Задается обработка событий командой incrontab с ключем -е (incrontab edit, аналогично crontab -e системы cron):

incontab -e

В результате файл incrontab откроется для редактирования в консольном текстовом редакторе (vi, nano или подобном).

Формат файла incrontab немного похож на crontab, и содержит три колонки:

<директория/файл> <событие> <команда>

Вот некоторые из взоможных событий, происходящих с файлами и каталогами, которые отслеживает incron:

IN_ACCESS — совершен доступ к файлу (чтение);
IN_ATTRIB — изменены метаданные файла;
IN_CREATE — создание файла или директории;
IN_DELETE — удаление файла или директории;
IN_MODIFY — файл был модифицирован;

Полный список всевозможных событий можно посмотреть командой:

incrontab -t

Пример файла incrontab (отрисовка графа утилитой circo из файла topo.dot при его создании или изменении в каталоге /tmp):

/tmp/topo.dot IN_CREATE /usr/bin/circo -T png -o /var/www/graph/topo.dot.png /tmp/topo.dot
/tmp/topo.dot IN_MODIFY /usr/bin/circo -T png -o /var/www/graph/topo.dot.png /tmp/topo.dot

Просмотреть файл incrontab можно командой incrontab с ключем -l (incrontab list, по аналогии с crontab -l):

incrontab -l

После изменения файла incrontab демон incron требует перезапуска.

Чтобы у вас были права на работу с утилитой incrontab, нужно добавить пользователя в файл  /etc/incron.allow. Например, для root:

echo "root" >> /etc/incron.allow

<< Пакетное изменение изображений

Поделиться в соцсетях:

система комментирования CACKLE
RSS