Lundi productif: Incron - Exécuter des commandes selon l'activité du système de fichers
Par Lokthare le lundi, juillet 23 2007, 09:47 - Lundi productif - Lien permanent
Ce billet est une traduction de l'article «Productive Monday: Incron - Execute commands based on filesystem activity» écrit par Chris Tyler.
Cron est un outil qui exécute des commandes à certains moments. Incron est un outil créé sur le même modèle que cron et qui exécute des commandes en fonction de l'activité sur le système de fichiers. Incron permet de vérifier si des modifications, tel que des créations de fichiers, des écritures, des fermetures ou des suppressions ont eu lieu sur un fichier spécifique et dans un répertoire entier.
Les utilisations possibles d'incron sont nombreuses par exemple:
- jouer un son lorsqu'un fichier est modifier
- recharger la configuration d'un serveur lorsque les fichiers de configuration sont modifié
- prévenir un utilisateur de l'arrivée d'une nouveau message
- vérifier si des fichiers critiques n'ont pas été modifié
Ce paquet contient un démon nommé incrond. Utiliser les commandes server et chkconfig pour lancé le serveur et pour le configurer afin qu'il soit lancé au démarrage du système.
# service incrond start
Starting incrond: [ OK ]
# chkconfig incrond on
Incron utilise des fichiers incrontab (similaire aux fichiers crontab) par chaque utilisateur. Chaque ligne du fichier incrontab contient un nom de fichier, une liste séparé par des virgules d'évènements et la commande a exécuté. Utiliser le commande incron avec l'option -t (type) pour afficher la liste d'évènement disponible:
$ incrontab -t
IN_ACCESS,IN_MODIFY,IN_ATTRIB,IN_CLOSE_WRITE,
IN_CLOSE_NOWRITE,IN_OPEN,IN_MOVED_FROM,
IN_MOVED_TO,IN_CREATE,IN_DELETE,IN_DELETE_SELF,
IN_CLOSE,IN_MOVE,IN_ONESHOT,IN_ALL_EVENTS,
IN_DONT_FOLLOW,IN_ONLYDIR,IN_MOVE_SELF
La plupart des noms de ces évènements s'explique d'eux même. Vous pouvez trouver une brève description des évènements dans le fichier /usr/include/linux/inotify.h (contenu dans le paquet kernel-headers) qui est le fichier d'en-tête principal du système inotify sur lequel incron est basé.
Pour créer une incrontab, utiliser la commande incron avec l'option -e (edit). Par défaut, vi sera l'éditeur utilisé, pour changer ce comportement, éditer le fichier /etc/incron.conf ou changer la variable d'environnement EDITOR.
Quelques exemples d'entrées pour incrontab:
| Jouer un son lorqu'un fichier est fermé après une écriture (Utiliser play à la place de paplay si vous n'utilisez pas PulseAudio) |
/tmp IN_WRITE_CLOSE paplay /usr/share/sounds/KDE_Beep_Bottles.wav |
| Recharger la configuration du DNS lorque le fichier /etc/named.conf est modifié | /etc/named.conf IN_MODIFY /sbin/service named reload |
Installation en ligne de commande: yum install incron
Installation en utilisant l'installeur graphique: N'est pas disponible en mode navigation -- Utilisez le mode recherche pour installer incron
Localisation dans le menu après installation: (Pas applicable)
Commande: /usr/bin/incron
Site web: http://inotify.aiken.cz/

Commentaires
Très instructif... Mais bon redémarrer un service sur modification de fichier de conf c'est quand même très risqué... Et à faire un script de contrôle autant mettre l'instruction de relance dans ce script... Mais bon j'y trouverais sûrement une utilité ;-).