[Incron/Script] Exécution d’un script suite a un événement

 

Exécution d’un script suite a un événement avec Incrontab
Article original Publié le : 07 juin 2020
Mise a jour le :

J’ ai découvert récemment ce paquet, il peut permettre par exemple de déclencher des actions selon divers scenarios.
Pour mes besoins il surveille un répertoire et des qu’un fichier est crée dedans il exécute un script pour signaler la présence (hprof java).

 

Pre-requis

Un postfix operationnel et la commande mail

 

Tester sur une Centos 7.x

Installer le paquet

$ sudo yum install -y incron

 

Éditer et ajouter la directive suivante

$ sudo incrontab -e
/var/tmp/application/hprof/ IN_CLOSE_WRITE /opt/scripts/hprof.sh $#

 

Créer le répertoire et afficher les droits (chown/chmod)

$ sudo mkdir /var/tmp/application/hprof

Création du script

$ sudo vi /opt/scripts/hprof.sh
#!/bin/bash
set -x
hprof=$1
date=`date`
gzip /var/tmp/application/hprof/$hprof && \
chmod 644 /var/tmp/application/hprof/${hprof}.gz 2>/dev/null && \
echo "Le service application va être automatiquement redémarré, vérifié le hprof" | mail -s "[Hprof généré] ${hprof}.gz sur $HOSTNAME à $date" adresse_email@domaine.tld

# Redémarrage de l'application
$ sudo systemctl stop application && sudo systemctl start application

 

Ajouter les droits d’exécution au script

$ sudo chmod +x /opt/scripts/hprof.sh

Relancer le daemon incron

$ sudo service incrond restart

Faire le test, cela enverra un mail suite a l’événement “IN_CLOSE_WRITE” (description ci dessous)

$ sudo touch /var/tmp/transformer/hprof/test

 

 

Voici la liste des é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 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 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

Source: https://doc.ubuntu-fr.org/incron#configurer_les_dossiers_et_les_actions_a_effectuer

 

 

No votes yet.
Please wait...

Laisser un commentaire

Votre adresse de messagerie ne sera pas publiée. Les champs obligatoires sont indiqués avec *

Ce site utilise Akismet pour réduire les indésirables. En savoir plus sur comment les données de vos commentaires sont utilisées.