26/11/2024

Commandes et SystèmeServices

Incron : exécuter des actions selon des événements

I. Présentation :

Je me suis récemment  acheté une caméra pour mon Raspberry Pi . C’est super ! Très pratique pour surveiller ma maison quand je suis absent. Pour cela j’utilise Motion, logiciel de détection vidéo et qui permet de diffuser un flux vidéo via internet par le protocole HTTP.

Cependant les photos sont enregistrées sur la carte SD.  En cas d’infraction, un voleur peut très bien retirer la carte SD ou sont stockées les photos/vidéos ...

Afin d'assurer la sécurité des données,  je souhaite envoyer les photos sur un serveur distant. Je vais pour cela utiliser Incron, qui permet d’exécuter des actions selon des événements.

II. Installation :

Dans un terminal :

# aptitude update
# aptitude install incron

Après l’installation nous allons retrouver 3 fichiers dans le dossier /etc :

incron.conf : fichier de configuration principal
incron.allow : utilisateurs autorisés à utiliser incron
incron.deny : utilisateurs non autorisés à utiliser incron

 

III. Configuration :

Une fois installé il faut créer un script à exécuter lorsque des images auront été prises par la camera du raspberry pi :

Capture2

Remarque : J'ai configuré motion pour qu'il enregistre les photos et vidéos dans /home/motion/camera, et j'ai souhaité faire un tri en fonction du format de fichier et envoyer le tout sur le serveur distant.

Puis il faut dire à Incron ce qu’il doit faire lorsque des photos seront enregistrées dans le dossier :

  • autoriser l’utilisateur à modifier la table incron :
# vi /etc/incron.allow 

Et ajouter root
  • ajouter une tâche dans Incron :
# vi /etc/incron.d/motion

Et ajouter la ligne suivante :

/home/motion/camera   IN_CLOSE_WRITE   /home/motion/script.sh   $#

chemin du répertoire à scruter | type d'événement | commande à exécuter

 

Remarque : l’option « IN_CLOSE_WRITE » permet de dire qu’il faut attendre que le fichier soit clôturé en écriture (téléchargement terminé) avant d'exécuter la commande (ou le script). L'option $#  est le nom du fichier qui arrive dans le répertoire "camera"

 

 IV. Aller plus loin :

Si on veut aller plus loin et être averti par email, il est possible d'utiliser Incron sur le serveur distant afin qu'il vérifie le répertoire de destination précédemment configuré :

  • Installation de Incron sur le serveur distant :
# aptitude update 
# aptitude instrall incron
  • Créer un script pour l’envoi d’un email en cas de mouvements :
# vi /xxxxx/scriptEnvoiMail.sh

echo "Alerte mouvements" | mail -s "CameraPi"  adresse@mail
  •  Configuration de Incron
# vi /etc/incron.d/motion

/dossier à surveiller   IN_CLOSE_WRITE   /xxxxx/scriptEnvoiMail.sh

 

V. Fichier de logs :

Si vous avez des problèmes, penser à vérifier le fichier de log :

tail -n 10 /var/log/syslog | grep incron
author avatar
Arnaud Baumard
Adepte des nouvelles technologies, passionné d'informatique et plus particulièrement dans l'administration systèmes et réseaux, je viens partager mes connaissances, mes trouvailles, mes projets.
Partagez cet article Partager sur Twitter Partager sur Facebook Partager sur Linkedin Envoyer par mail

6 commentaires sur “Incron : exécuter des actions selon des événements

  • Bonjour,
    Je m’été déjà demandé comment envoyer automatiquement les photos de ma Raspberry en ligne, mais je ne connaissait pas Incron !

    J’avais bien pensé à utiliser la crontab par exemple, et vérifier les fichiers déjà envoyés, regarder les fichiers actuellement présent, et envoyer la différence, mais c’est faire beaucoup de requêtes inutiles !

    Du coup merci beaucoup pour l’idée d’Incron, je crois que je vais mettre ça en place dans la semaine 🙂

    Il faut dire qu’il y a tellement de choses à faire avec une Raspberry ! Il n’y a qu’à voir le nombre d’accessoires compatibles avec Raspbian (et autres) ! Un accessoire, une utilisation, on a pas fini de faire le tour !

    Répondre
    • Bonjour,

      Oui je suis d’accord avec toi ^^ je n’ai pas finis de m’amuser avec :p

      Répondre
  • Bonjour
    J’ai utilisé ce tuto pour faire que mon rpi joue un son à chaque insertion ou désinsertion de disque ou clé usb, mais quand je connecte une clé, mon pi reste muet
    Quelqu’un peut-il m’aider?

    Répondre
    • Bonjour, as tu regardé tes logs afin de savoir si ton script se lance?

      Répondre
  • Bonjour,
    j’ai un sujet de mémoire de fin de cycle qui porte sur la mise en place d’un serveur de partage (samba) entre les professeurs et les étudiants et je doit envoyer un mail a l’adresse des étudiants si un professeur ajoute un fichier (cour) dans son répertoire mai j’ai essayé mm ça ne marche po !!
    j’ai le script mail.sh et la liste des adresses e mails .j’ai suivi ce tuto IV. mai rien

    quelqu’un pourrait m’aider svp !!

    Répondre
    • Bonjour,
      As-tu positionné les bons droits sur ce script ?
      As-tu essayé de lancer le script manuellement ?

      N’hésite pas à utiliser le forum, nous serons ainsi plusieurs à pouvoir te répondre sur ton problème.

      Cordialement.

      Répondre

Laisser un commentaire

Votre adresse e-mail 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.