Incron

De Wiki doc

Révision datée du 28 février 2022 à 01:09 par Ycharbi (discussion | contributions) (Changement de catégorie)
(diff) ← Version précédente | Voir la version actuelle (diff) | Version suivante → (diff)

incron est un outil qui exécute des actions selon des événements du système de fichiers.

Composition

Il est composé de :

  • incrond : un démon (un service qui tourne en tâche de fond)
  • incrontab : configurer les actions en ligne de commande
  • /etc/incron.conf : le fichier de configuration principal
  • /etc/incron.d/ : répertoire contenant la définition de fichiers/de répertoires à monitorer
  • /etc/incron.{allow,deny} (optionnel) : fichier définissant les utilisateurs autorisés à utiliser l’outil

Fonctionnement

Le fonctionnement est proche de cron :

Le démon incrond scan les fichiers /etc/incron.d/ pour savoir quoi faire en fonction des évènements du système.

Installation

Installer incron

# apt install incron

Gérer les autorisations de l'utilisation de incron

Si le fichier /etc/incron.allow existe, alors seuls les utilisateurs qui sont dans ce fichier ont le droit d'utiliser incron. Ainsi, il vous faut soit :

Effacer le fichier

# rm -f  /etc/incron.allow

Ajouter l'utilisateur courant (ou ceux voulus)

# echo $USER | tee -a /etc/incron.allow

Configurer les dossiers et les actions à effectuer

Lancer incrontab pour assigner des actions en fonction des fichiers/dossiers paramétrés :

# incrontab -e

Le format de saisie de incrontab est :

<chemin> <type d'événement> <commande à exécuter>

Exemple :

/home/mon_user/download IN_CLOSE_WRITE /home/mon_user/mon_script_incron.sh

Type d'événement

  • IN_ACCESS : le fichier a été accédé (lecture)
  • IN_ATTRIB : les métadonnées du fichier ont été modifiées (permissions, timestamp, attributs étendus, etc)
  • IN_CLOSE_WRITE : fermeture d’un fichier avec écriture. On attend que le fichier soit clôturé, dans notre cas, que le téléchargement SOIT TERMINE avant de déclencher la commande ou le script
  • IN_CLOSE_NOWRITE : fermeture d’un fichier sans écriture
  • IN_CREATE : fichier ou répertoire créé dans un répertoire surveillé. Attention : la commande est déclenchée lorsque le fichier est créé MAIS pas "terminé". Dans le cas d'un téléchargement qui dure 2 mn dans notre répertoire "download", la commande se déclencherait dès la création du fichier SANS ATTENDRE LA FIN DU TÉLÉCHARGEMENT. L’opération de déplacement échouerait.
  • IN_DELETE : fichier ou répertoire supprimé dans un répertoire surveillé
  • 'IN_DELETE_SELF : le fichier ou répertoire surveillé est supprimé
  • IN_MODIFY : le fichier ou répertoire a été modifié
  • IN_MOVE_SELF : le fichier ou répertoire a été déplacé
  • 'IN_MOVED_FROM : un fichier du répertoire surveillé à été déplacé
  • IN_MOVED_TO : un fichier à été déplacé dans le répertoire surveillé
  • IN_ALL_EVENTS : combinaison de tous ce qui précède
  • IN_MOVE : équivalent à IN_MOVED_FROM ou IN_MOVED_TO
  • IN_CLOSE : équivalent à IN_CLOSE_WRITE ou IN_CLOSE_NOWRITE

Wildcard

  • $# : nom du fichier ou non du dossier sur lequel l’événement est intervenu
  • $@ : chemin complet (dossier) du fichier/répertoire surveillé
  • $% : nom (textuel) de l’événement intervenu
  • $& : numéro de l’événement intervenu
  • $$ : le caractère dollar (“$”)

Prise en compte de la configuration

La prise en compte de la configuration ce fait en redemarrant le demon

# service incron restart