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