incron 0.3.2 review

Download
by rbytes.net on

incron is an "inotify cron" system

License: GPL (GNU General Public License)
File size: 94K
Developer: Lukas Jelinek
0 stars award from rbytes.net

incron is an "inotify cron" system. It works like the regular cron but is driven by filesystem events instead of time periods.

incron contains two programs, a daemon called "incrond" (analogous to crond) and a table manipulator "incrontab" (like "crontab").

Requirements:
Linux kernel 2.6.13 or later (with inotify compiled in)
inotify headers (inotify.h, inotify-syscalls.h) installed in /sys. The most common place is /usr/include/sys.
GCC 4.x compiler (probably works also with GCC 3.4, possibly with older versions too)

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 >

Where:

< 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 $@/$#

What's New in This Release:
This version fixes startup problems with Reiserfs.

incron 0.3.2 keywords