incron (remplaçant de dnotify) est le diminutif de inotify crontab qui est le diminutif de chrono table qui signifie table de planification.
inotify est un mécanisme du noyau Linux qui fournit des notifications concernant le système de fichiers.
Ainsi, incron est un outil qui exécute des actions selon des événements du système de fichiers.
Il est composé de :
Fonctionnement : le fonctionnement est proche de cron :
L'utilisation est proche de cron.
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 :
sudo rm -f /etc/incron.allow
echo $USER | sudo tee -a /etc/incron.allow
Lancer incrontab pour assigner des actions en fonction des fichiers/dossiers paramétrés :
incrontab -e
ou bien créer un fichier texte dans le dossier :
/etc/incron.d/
Le format de saisie de incrontab est :
<chemin_répertoire_ou_fichier> <type(s) d'événement(s) séparés par un virgule> <commande ou script à exécuter>
Exemple : /home/mon_user/download IN_CLOSE_WRITE /home/mon_user/mon_script_incron.sh
Une possibilité (à inclure dans le script exécuté par incron) : à adapter selon la session et l'utilisateur
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." '
On peut ajouter
-- "$@"
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
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 :
Wildcard | Signification |
---|---|
$# | nom du fichier ou nom 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 (“$”) |
sudo service incron restart
Merci infiniment pour ces 2 liens qui ont servi d'inspiration pour cette page :