Différences

Ci-dessous, les différences entre deux révisions de la page.

Lien vers cette vue comparative

Les deux révisions précédentesRévision précédente
Prochaine révision
Révision précédente
incron [Le 23/06/2014, 15:27] – [Gérer les autorisations de l'utilisation de incron] 77.198.254.16incron [Le 14/07/2023, 12:01] (Version actuelle) – [Configurer les dossiers et les actions à effectuer] Retrait d'un espace non nécessaire Benjamin Loison
Ligne 1: Ligne 1:
 +{{tag>système administration}}
 ====== Présentation ====== ====== Présentation ======
 ===== Origine ===== ===== Origine =====
  
-**inron** est le diminutif de **in**otify  **cron**tab qui est le diminutif de **c**h**ro**no **tab**le qui signifie table de planification.+**incron** (remplaçant de //dnotify//est le diminutif de **in**otify  **cron**tab qui est le diminutif de **c**h**ron****tab**le qui signifie table de planification.
  
 [[https://fr.wikipedia.org/wiki/Inotify|inotify]] est un mécanisme du [[https://fr.wikipedia.org/wiki/Noyau_Linux|noyau Linux]] qui fournit des notifications concernant le système de fichiers. [[https://fr.wikipedia.org/wiki/Inotify|inotify]] est un mécanisme du [[https://fr.wikipedia.org/wiki/Noyau_Linux|noyau Linux]] qui fournit des notifications concernant le système de fichiers.
Ligne 13: Ligne 14:
   * **incrond** : un démon (un service qui tourne en tâche de fond)   * **incrond** : un démon (un service qui tourne en tâche de fond)
   * **incrontab** : configurer les actions en ligne de commande   * **incrontab** : configurer les actions en ligne de commande
-  * **/etc/incron.conf** : le fichier de configuration principal +  * **/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.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   * **/etc/incron.{allow,deny}** (optionnel) : fichier définissant les utilisateurs autorisés à utiliser l’outil
Ligne 21: Ligne 22:
   * le démon **incrond** scanne les fichiers **/etc/incron.d/** pour savoir quoi faire en fonction des évènements du système   * le démon **incrond** scanne les fichiers **/etc/incron.d/** pour savoir quoi faire en fonction des évènements du système
  
-====== Installation ======+===== Installation =====
 [[:tutoriel:comment_installer_un_paquet|Installer un paquet]] [[apt://incron|incron]] [[:tutoriel:comment_installer_un_paquet|Installer un paquet]] [[apt://incron|incron]]
  
-====== Configuration ======+===== Configuration =====
 L'utilisation est proche de cron. L'utilisation est proche de cron.
  
-===== Gérer les autorisations de l'utilisation de 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 : 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 <code>sudo rm -f  /etc/incron.allow</code>+  * Effacer le fichier <code>sudo rm -f /etc/incron.allow</code>
   * Ajouter l'utilisateur courant (ou ceux voulus) <code>echo $USER | sudo tee -a /etc/incron.allow</code>   * Ajouter l'utilisateur courant (ou ceux voulus) <code>echo $USER | sudo tee -a /etc/incron.allow</code>
  
-===== Configurer les dossiers et les actions à effectuer =====+==== Configurer les dossiers et les actions à effectuer ====
 Lancer **incrontab** pour assigner des actions en fonction des fichiers/dossiers paramétrés : Lancer **incrontab** pour assigner des actions en fonction des fichiers/dossiers paramétrés :
-<code>incrontab -e</code>  +<code bash>incrontab -e</code> 
 +<note>Cet utilitaire modifie un fichier dont le chemin est ///var/spool/incron/$USER//</note> 
 +   
 +ou bien créer un fichier texte dans le dossier : 
 +  /etc/incron.d/ 
 +   
 +  
 Le format de saisie de incrontab est : Le format de saisie de incrontab est :
  
-**<chemin> <type d'événement> <commande à exécuter>**+**<chemin_répertoire_ou_fichier> <type(s) d'événement(s) séparés par un virgule> <commande ou script à exécuter>**
  
 //Exemple// : //Exemple// :
-/home/MonUser/download IN_CLOSE_WRITE /home/td/incron-script.sh+/home/mon_user/download IN_CLOSE_WRITE /home/mon_user/mon_script_incron.sh
  
 +===Règles importantes===
 +  * Si votre dossier comporte des **espaces**, il faut mettre un antislash \ devant chacun d'entre eux. Les guillements ne marcheraient pas. Ex : **Mon\ dossier\ avec\ espace** au lieu de **"Mon dossier avec espace"**
  
-**Liste des types d'événements** +  Il est préférable d'**utiliser un script** plutot que de lancer directement des commandesEffectivementcertaines commandes semblent ne pas marcher quand elles sont directement appelé dans le fichier alors qu'elles marchent quand elles sont appelées dans le script.
-^ type d'événement  ^ Signification ^ +
-| IN_ACCESS | File was accessed (read) | +
-| IN_ATTRIB | Metadata changed (permissions, timestamps, extended attributes, etc.) | +
-| IN_CLOSE_WRITE | File opened for writing was closed. on attend que le fichier soit cloturé, dans notre cas, que le téléchargement SOIT TERMINE avant de déclencher la commande ou le script | +
-| IN_CLOSE_NOWRITE | File not opened for writing was closed | +
-| IN_CREATE | File/directory created in watched directory. **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 TELECHARGEMENT. L'operation de déplacement échouerait+
-| IN_DELETE | File/directory deleted from watched directory | +
-| IN_DELETE_SELF | Watched file/directory was itself deleted | +
-| IN_MODIFY | File was modified | +
-| IN_MOVE_SELF | Watched file/directory was itself moved | +
-| IN_MOVED_FROM | File moved out of watched directory | +
-| IN_MOVED_TO | File moved into watched directory | +
-| IN_OPEN | File was opened |+
  
 +  * Le display n'est pas actif. Vous ne pouvez donc pas appeler de commande graphique tel que Zenity pour afficher des boites de dialogue (ou alors quelqu'un pourrait expliquer comment ?).
 +Une possibilité (à inclure dans le script exécuté par incron) : **à adapter selon la session et l'utilisateur**
 +<code>sudo -u nom_utilisateur sh -c '\
 +   export DISPLAY=:0
 +   PID=$(pgrep gnome-session)
 +   [ ! -z "$PID" ] && dbus=$(grep -z DBUS_SESSION_BUS_ADDRESS /proc/$PID/environ | cut -d= -f2-)
 +   export DBUS_SESSION_BUS_ADDRESS=$dbus
 +   zenity --info --title "TEST INCRON" --text "test graphique incron."
 + '</code> 
 + On peut ajouter <code>   -- "$@"</code> après la dernière simple quote ' pour récupérer les arguments passés au script et donc afficher qui a déclenché quoi
 +
 +  * Si vous voulez appliquer plusieurs événements, il faut les séparer par une virgule et non insérer plusieurs lignes
 +
 +===Liste des types d'événements===
 +^ type d'événement  ^ Signification ^
 +| 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 | le 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 | le 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 a é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  |
  
 Pour utiliser contextuellement les fichiers/dossiers, des "Wildcard" sont disponibles : Pour utiliser contextuellement les fichiers/dossiers, des "Wildcard" sont disponibles :
  
 ^ Wildcard  ^ Signification ^ ^ Wildcard  ^ Signification ^
-| $dollar sign +| $nom du fichier ou nom du dossier sur lequel l’événement est intervenu 
-| $@ | watched filesystem path (see above) | +| $@ | chemin complet (dossierdu fichier/répertoire surveillé 
-| $event-related file name +| $nom (textuel) de l’événement intervenu 
-| $event flags (textually) +| $numéro de l’événement intervenu 
-| $event flags (numerically) |+| $le caractère dollar (“$”) |
  
  
-====== Liens ====== +==== Prise en compte de la configuration en redemarrant le demon ===
-Merci infiniement pour ces 2 liens qui ont servi d'inspiration pour cette page : +  sudo service incron restart 
-  * [[http://www.admin-linux.fr/?p=4840|Une description intéressante sur admin-linux.fr]] +   
-  * [[http://dmesg.fr/categorie-logiciels/75-incron-executer-des-actions-selon-des-evenements-du-systeme-de-fichiers|Une autre description intéressante sur dmesg.fr]]+===== Liens ===== 
 +Merci infiniment pour ces 2 liens qui ont servi d'inspiration pour cette page : 
 +  * [[https://www.dmesg.fr/categorie-logiciels/75-incron-executer-des-actions-selon-des-evenements-du-systeme-de-fichiers|Une autre description intéressante sur dmesg.fr]] 
 +  * [[https://www.it-connect.fr/incron-executer-des-actions-selon-des-evenements/|Tutoriel sur l'utilisation d'Incron]] sur IT-Connect.fr 
 +  * [[:cron]] : planifier/programmer des tâches 
 +  * [[:Anacron]] : planificateur de commande « anachronique » 
 +  * [[fcron]] : programmer des tâches devant être exécutées