INCRONTAB - Guide des commandes
incrontab est un utilitaire sous Linux qui permet de surveiller des événements dans le système de fichiers et d’exécuter des commandes en réponse à ces événements. Il est souvent utilisé pour automatiser des tâches en fonction des changements de fichiers tels que la création, la modification ou la suppression de fichiers.
Utilisation de base
Pour utiliser incrontab, vous devez créer et gérer une table d’incrontab. Chaque ligne de cette table spécifie un chemin de fichier à surveiller, un événement à suivre, et une action à exécuter en cas de détection de l’événement.
Syntaxe d’une ligne incrontab
La syntaxe d’une ligne incrontab est la suivante:
incrontab -l
# chemin_de_fichier evenement action
# /chemin/vers/repertoire_a_surveiller IN_MODIFY /usr/local/bin/mon_script.sh
Description
chemin_de_fichier: Le chemin absolu du fichier ou du répertoire à surveiller.
evenement: L’événement à surveiller, comme “IN_CREATE” pour la création de fichiers.
action: La commande à exécuter en cas de détection de l’événement.
Options et Paramètres
Option/Paramètre |
Description |
Exemple |
---|---|---|
-e |
Ouvre le fichier incrontab pour édition. Permet d’ajouter, de modifier ou de supprimer des lignes de surveillance. |
incrontab -e |
-l |
Affiche le contenu actuel de la table incrontab. |
incrontab -l |
-r |
Supprime la table incrontab actuelle. |
incrontab -r |
-t |
Active le mode test où les actions sont simulées sans effectuer de modifications réelles. |
incrontab -t |
-v |
Active le mode verbeux qui affiche des informations détaillées sur les événements surveillés. |
incrontab -v |
Chemin, Evénement, et Action
chemin_de_fichier: Le chemin absolu du fichier ou du répertoire à surveiller. Ex: /var/www/html
evenement: L’événement à surveiller tel que IN_CREATE, IN_MODIFY, IN_DELETE, IN_CLOSE_WRITE, etc. Ex: IN_CREATE
action: La commande ou l’action à exécuter lorsque l’événement est détecté. Ex: echo “Un fichier a été créé”
Liste des événements supportés par incrontab
Événement |
Description |
---|---|
IN_CREATE |
Déclenché lorsqu’un nouveau fichier ou répertoire est créé dans le répertoire surveillé. |
IN_DELETE |
Déclenché lorsqu’un fichier ou répertoire est supprimé dans le répertoire surveillé. |
IN_MODIFY |
Déclenché lorsqu’un fichier existant est modifié dans le répertoire surveillé. |
IN_CLOSE_WRITE |
Déclenché lorsqu’un fichier a été fermé après avoir été ouvert en écriture indiquant la fin de l’écriture. |
IN_MOVED_TO |
Déclenché lorsqu’un fichier ou répertoire est déplacé ou renommé dans le répertoire surveillé. |
IN_MOVED_FROM |
Déclenché lorsqu’un fichier ou répertoire est déplacé ou renommé à l’extérieur du répertoire surveillé. |
IN_ATTRIB |
Déclenché lorsque les attributs d’un fichier changent comme les permissions ou le propriétaire. |
IN_DELETE_SELF |
Déclenché lorsque le répertoire surveillé lui-même est supprimé. |
IN_MOVE_SELF |
Déclenché lorsque le répertoire surveillé lui-même est déplacé ou renommé. |
Expressions
Il existe également des expressions qui peuvent être intégrées lors de l’appel d’un script:
Expression |
Description |
Exemple |
---|---|---|
$@ |
Cette variable spéciale représente tous les paramètres passés au script incrontab sous forme d’une liste. |
|
$# |
Cette variable spéciale représente le nombre de paramètres passés au script incrontab. |
|
$@/$# |
Cette expression combine les deux variables pour passer le nom du fichier modifié en tant que premier argument au script incrontab. |
/chemin/vers/script.sh $@/$# |
Exemple d’utilisation
Configuration incrontab:
/var/mon_repertoire IN_MODIFY /usr/local/bin/mon_script.sh $@/$#
Lorsqu’un fichier est modifié dans /var/mon_repertoire, incrontab exécute /usr/local/bin/mon_script.sh en passant le nom du fichier modifié en tant que premier argument au script.
Dans le script /usr/local/bin/mon_script.sh, vous pouvez utiliser $1 pour accéder au nom du fichier modifié:
#!/bin/bash
fichier_modifie="$1"
echo "Le fichier $fichier_modifie a été modifié."
# Faites des opérations supplémentaires sur le fichier modifié.
Cet exemple montre comment utiliser $@/$# pour passer le nom du fichier modifié en tant qu’argument à votre script incrontab. Dans le script, vous pouvez ensuite utiliser $1 pour accéder à ce nom de fichier et effectuer des opérations spécifiques en fonction du fichier modifié.
Surveillance de deux événements
# incrontab -l
/chemin/vers/repertoire_a_surveiller IN_CREATE,IN_CLOSE_WRITE /chemin/vers/traitement_script.sh $@/$#
Meta
Auteur : Cbillet Date : 08/10/2024