InCron, pour Inotify Cron Daemon est un gestionnaire d’événements basé sur Inotify.
Inotify est un mécanisme du noyau Linux (>=2.6.13) qui fournit des notifications concernant le système de fichiers. (définition Wikipedia)
InCron est un démon qui a le même mode de fonctionnement que cron à la différence que le lancement de job ne se fera pas en fonction de date/heure, mais d’événement sur le système de fichiers.
Voici les événements qui peuvent être surveillés :
- IN_ACCESS – accès au fichier (lecture)
- IN_MODIFY – modification d’un fichier
- IN_ATTRIB – changement des attributs du fichier
- IN_OPEN et IN_CLOSE – ouverture et fermeture du fichier
- IN_MOVED_FROM et IN_MOVED_TO – déplacement ou renommage du fichier
- IN_DELETE – suppression d’un fichier/répertoire
- IN_CREATE – création d’un fichier dans le répertoire surveillé
- IN_DELETE_SELF – suppression du fichier surveillé
- IN_CLOSE_WRITE – Lorsque qu’un fichier ouvert pour écriture a été fermé
- IN_CLOSE_NOWRITE – Fichier non ouvert pour écriture a été fermé
- IN_CLOSE – couvre IN_CLOSE_WRITE et IN_CLOSE_NOWRITE
- IN_MOVE_SELF – Le fichier/dossier surveillé a été déplacé lui-même
- IN_MOVE – Couvre IN_MOVED_FROM et IN_MOVED_TO
- IN_ALL_EVENTS – Regroupe tous les événements ci-dessus
Voici des possibilités supplémentaires à ajouter au masque.
- IN_DONT_FOLLOW – Ne pas déréférencer le chemin s’il s’agit d’un lien symbolique.
- IN_MASK_ADD – Ajouter les événements au masque de surveillance de ce fichier s’il existe déjà (au lieu de remplacer le masque).
- IN_ONESHOT – Surveiller le chemin jusqu’au premier événement, puis le supprimer de la liste de surveillance
- IN_ONLYDIR – Ne surveiller le chemin que si c’est un répertoire.
Voici la syntaxe du fichier de configuration de incron :
<chemin> <masque> <commande>
<chemin> – chemin surveillé
<masque> – événement surveillé
<commande> – commande lancée si l’événement survient
Ce qui pourrait donner par exemple
/var/spoo/cron/crontabs/root IN_DELETE rsync -avz /backup/crontabs/root/ /var/spool/cron/crontabs/.
C’est assez simple à comprendre si le fichier root (crontab de l’utilisateur root) est supprimé il est remplacé par une sauvegarde. C’est juste un exemple bien sur
La commande peut contenir ces “variables”:
- $$ – le signe dollar
- $@ – le chemin du système de fichiers surveillé
- $# – Le nom du fichier lié à l’événement
- $% – L’identifiant de l’événement (textuel)
- $& – L’identifiant de l’événement (textuel)
Les possibilités sont énormes et dans plein de domaines
Liens utiles :
Article assez complet sur Incron de admin-linux.fr
Article intéressant également sur incrontab
La manpage d’inotify d’Ubuntu (très complet)
Pour la création de l’image, j’ai comme d’habitude utilisé les images d’openclipart ci-dessous :
La loupe
Le Fichier