Incron : exécuter des actions selon des événements
Sommaire
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 :
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
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 !
Bonjour,
Oui je suis d’accord avec toi ^^ je n’ai pas finis de m’amuser avec :p
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?
Bonjour, as tu regardé tes logs afin de savoir si ton script se lance?
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 !!
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.