An "inotify cron" system.
Version: 0.5.9incron is an "inotify cron" system. It works like the regular cron but is driven by filesystem events instead of time periods.
Operating System: Linux
incron contains two programs, a daemon called "incrond" (analogous to crond) and a table manipulator "incrontab" (like "crontab").
How to build:
Because this version is very early it does not contain a standard portable build mechanism. There is only a Makefile which must be modified manually. On many Linux systems you need not to change anything.
Please review the Makefile BEFORE you type 'make'. Especially check the PREFIX and other common variables. If done you can now build the files ('make').
The binaries must be of course installed as root. Note that the installer creates a special user called 'incron' which manages the incron tables.
How to use:
The incron daemon (incrond) must be run under root (typically from runlevel script etc.). It loads the current user tables and hooks them for later changes.
The incron table manipulator may be run under any regular user since it SUIDs. For manipulation with the tables use basically the same syntax as for the crontab program. You can import a table, remove and edit the current table.
The user table rows have the following syntax:
< path > < mask > < command >
< path > is a filesystem path (currently avoid whitespaces!)
< mask > is a symbolic (see inotify.h; use commas for separating symbols) or numeric mask for events
< command > is an application or script to run on the events
The command may contain these wildcards:
$$ - a dollar sign
$@ - the watched filesystem path (see above)
$# - the event-related file name
Example: You need to run program 'abc' with the full file path as an argument every time a file is changed in /var/mail. One of the solutions follows:
/var/mail IN_CLOSE_WRITE abc $@/$#