#1 Le 17/05/2019, à 13:49
- Dimoi
Envoie d’alerte par ‘motion’ [Résolu]
Bonjour,
Pour configurer motion, j’ai besoin de créer un script, mais je ne sais pas comment le créer et l’enregistrer sans avoir l’autorisation de root.
Cette manipulation sert à : quand ‘motion’ détecte le mouvement, cela permet d’envoyer un mail d’alerte.
Voici quelques indications techniques :
- Le logiciel de transmission de courrier ‘mutt’ est déjà configuré,
- Login shell utilisé :
$echo $SHELL
/bin/bash
Créer une extension :
$vi ./motion_on_movie_end.sh
Après, je ne sais pas comment faire.
Le texte du script commence par ‘#!/bin/bh’, lorsque je voudrais l’enregistrer dans ‘bin/bh’ dans le système, c’est impossible.
Merci d’avance.
Dernière modification par Dimoi (Le 25/05/2019, à 02:05)
Hors ligne
#2 Le 17/05/2019, à 14:31
- Watts
Re : Envoie d’alerte par ‘motion’ [Résolu]
Bonjour!
De ce que je comprends, tu as déjà écris ton script et tu souhaites l'enregistrer? A savoir que la ligne '#!/bin/bh" dit juste quel programme il faut utiliser pour l'exécuter.
Acer Aspire X3990-Dual boot Windows 7 / Ubuntu 18.04
Hors ligne
#3 Le 17/05/2019, à 16:31
- Sciensous
Re : Envoie d’alerte par ‘motion’ [Résolu]
Pas besoin d'être root ou de se placer dans /usr/bin !!
il suffit de créer un fichier texte contenant le script (commençant par #!/bin/sh)
de l'enregistrer sous un nom dans ton répertoire personnel (ou un sous répertoire)
Le point délicat: le rendre executable
dans un navigateur de fichiers, tu clic droit sur le nom du fichier créé et dans propriétés tu autorises l'éxecution
Revenons à tes indications:
vi ./motion_on_movie_end.sh
vi= éditeur de texte en ligne de commande, pas pratique pour des débutants; autant passer par un éditeur de texte graphique (d=création du fichier texte)
motion_on_movie_end.sh=le nom du fichier
./= à exécuter dans le répertoire courant
(à la place du poin, ce pourrait etre /home/monidentifiant ou autre chose)
antiX 19 et 21 et Ubuntu 20.04 et 22.04
( sous LXDE et gnome-shell )
Hors ligne
#4 Le 18/05/2019, à 04:09
- Dimoi
Re : Envoie d’alerte par ‘motion’ [Résolu]
Merci pour vos réponses.:)
J’ai enregistré le script ‘motion_on_movie_end.sh’ dans ‘/home/perso/’.
Voici le contenu :
#!/bin/sh
AVI_PATH=$1
AVI_DIR=`dirname $AVI_PATH`
EMAIL_TO==monadresse@gmail.com
EMAIL_SUB="camerasurveillance"
EMAIL_BODY="détection d’un mouvement"
MUTT_CONF=/home/perso/mutt.conf
# send email by mutt & gmail
echo $EMAIL_BODY | mutt -F $MUTT_CONF -s $EMAIL_SUB -a $AVI_PATH -- $EMAIL_TO
Ensuite, j’ai ajouté dans ‘motion.conf’ :
on_movie_end sh /home/perso/motion_on_movie_end.sh
Mais ça n’a pas marché.
Dans propriétés du fichier, j’ai confirmé que l’exécution est bien autorisée.
Merci d'avance.
Hors ligne
#6 Le 18/05/2019, à 17:07
- Sciensous
Re : Envoie d’alerte par ‘motion’ [Résolu]
tu peux déjà vérifier que le script marche bien: le paramètre AVI_PATH est une inconnue pour moi
dans le fichier motion_on_movie_end.sh, change la ligne
echo $EMAIL_BODY | mutt -F $MUTT_CONF -s $EMAIL_SUB -a $AVI_PATH -- $EMAIL_TO
par
echo $EMAIL_BODY | mutt -F $MUTT_CONF -s $EMAIL_SUB $EMAIL_TO
puis après avoir enregistré, ouvre un terminal et entres-y:
/home/perso/motion_on_movie_end.sh
et donne le résultat
(si pas d'erreur, tu devrais recevoir un mail)
Dernière modification par Sciensous (Le 18/05/2019, à 17:08)
antiX 19 et 21 et Ubuntu 20.04 et 22.04
( sous LXDE et gnome-shell )
Hors ligne
#7 Le 19/05/2019, à 03:02
- Dimoi
Re : Envoie d’alerte par ‘motion’ [Résolu]
Merci Sciensous,
Suite à ton indication, voici le résultat :
$ /home/perso/motion_on_movie_end.sh
bash: /home/perso/motion_on_movie_end.sh: Aucun fichier ou dossier de ce type
Je n’ai pas reçu de mail.
J'ai essayé ceci :
$ bash motion_on_movie_end.sh
dirname: opérande manquant
Saisissez « dirname --help » pour plus d'informations.
motion_on_movie_end.sh: ligne 13: /home/mitx : est un dossier
motion_on_movie_end.sh: ligne 14: /home/mitx : est un dossier
motion_on_movie_end.sh: ligne 15: /home/mitx : est un dossier
motion_on_movie_end.sh: ligne 16: /home/mitx : est un dossier
motion_on_movie_end.sh: ligne 17: /home/mitx : est un dossier
motion_on_movie_end.sh: ligne 18: /home/mitx : est un dossier
motion_on_movie_end.sh: ligne 19: /home/mitx : est un dossier
motion_on_movie_end.sh: ligne 20: /home/mitx : est un dossier
motion_on_movie_end.sh: ligne 21: /home/mitx : est un dossier
Je ne comprends pas trop... mais j'ai reçu un mail qui a l'objet & le contenu que j'ai configuré dans motion_on_movie_end.sh
Dernière modification par Dimoi (Le 19/05/2019, à 03:22)
Hors ligne
#8 Le 19/05/2019, à 09:00
- Sciensous
Re : Envoie d’alerte par ‘motion’ [Résolu]
ok donc:
les messages d'erreur: normal car la variable AVI_PATH est vide et dirname ne peut chercher un "chemin dans le vide"
pour éviter ce message, il suffit de commenter la ligne dans le script avec un # au début:
AVI_DIR=`dirname $AVI_PATH`
devient
#AVI_DIR=`dirname $AVI_PATH`
et par ailleurs, dans ‘motion.conf’ :
change:
on_movie_end sh /home/perso/motion_on_movie_end.sh
par
on_movie_end bash /home/perso/motion_on_movie_end.sh
( où perso est à remplacer par ton pseudo mitx, soit:
on_movie_end bash /home/mitx/motion_on_movie_end.sh
et ça devrait marcher
(tu n'auras qu'un sujet dans le mail et pas de contenu dans le message qui devrait être mis dans un fichier à relire, ce que j'ai fait supprimer)
antiX 19 et 21 et Ubuntu 20.04 et 22.04
( sous LXDE et gnome-shell )
Hors ligne
#9 Le 20/05/2019, à 02:29
- Dimoi
Re : Envoie d’alerte par ‘motion’ [Résolu]
Merci Sciensous,
J’ai configuré le script & motion.conf en suivant tes conseils.
Bonne nouvelle : j’ai reçu un mail lors de détection d’un mouvement.
Mauvaise nouvelle : dans le mail, il n’y a pas de vidéo prise par motion...
Pour recevoir les vidéos enregistrées (format ‘avi’) dans /home/mitx/motion/ en tant que fichier joint, comment faire ?
Ne s’agit-il pas de ‘-a $AVI_PATH’ qui a été supprimé dans le fichier motion_on_movie_end.sh lors de la dernière opération ?
Hors ligne
#10 Le 20/05/2019, à 09:59
- Sciensous
Re : Envoie d’alerte par ‘motion’ [Résolu]
ça commence à prendre
tu as tout compris, la prochaine étape est d'indiquer le chemin complet de la vidéo prise:
dans le script, re-mettre:
AVI_PATH=$1
AVI_DIR=`dirname $AVI_PATH`
mais à l'appel dans motion.conf, il faut rajouter le chemin complet de la vidéo à l'appel (qui deviendra le parametre $1 du script:
d'après ce que j'ai trouvé sur le net, ce serait %f, soit:
on_movie_end sh /home/mitx/motion_on_movie_end.sh %f
Pour vérifier, dans le script, avant AVI_PATH=$1, mettre echo "video=$1"
echo "video=$1">/home/mitx/video.tmp
AVI_PATH=$1
AVI_DIR=`dirname $AVI_PATH`
une fois le "mouvement détecté", regarder dans le fichier /home/mitx/video.tmp le nom de fichier
et mettre la ligne complète dans ce post si ça ne marche pas
Dernière modification par Sciensous (Le 20/05/2019, à 10:15)
antiX 19 et 21 et Ubuntu 20.04 et 22.04
( sous LXDE et gnome-shell )
Hors ligne
#11 Le 20/05/2019, à 13:07
- Dimoi
Re : Envoie d’alerte par ‘motion’ [Résolu]
Merci,
Voici le script modifié :
#!/bin/sh
echo "video=$1">/home/mitx/video.tmp
AVI_PATH=$1
AVI_DIR=`dirname $AVI_PATH`
EMAIL_TO==monadresse@gmail.com
EMAIL_SUB="camerasurveillance"
EMAIL_BODY="capte un mouvement"
MUTT_CONF=/home/mitx/mutt.conf
# send email by mutt & gmail
echo $EMAIL_BODY | mutt -F $MUTT_CONF -s $EMAIL_SUB $EMAIL_TO
La configuration de motion :
on_movie_end sh /home/mitx/motion_on_movie_end.sh %f
J’ai démarré motion, un mail sans fichier joint arrive dans ma boîte.
Voici le texte qui se trouve dans le fichier /home/mitx/video.tmp :
video=/home/mitx/motion/01-20190520075059.avi
Et voici les lignes dans le terminal lorsque j’ai démarré et arrêté motion :
mitx@sdaf-Lenovo-B50-50:~$ sudo motion
[sudo] Mot de passe de mitx :
[0:motion] [NTC] [ALL] conf_load: Processing thread 0 - config file /etc/motion/motion.conf
[0:motion] [ALR] [ALL] conf_cmdparse: Unknown config option "
"
[0:motion] [NTC] [ALL] motion_startup: Motion 4.1.1 Started
[0:motion] [NTC] [ALL] motion_startup: Logging to file (/var/log/motion/motion.log)
^C
/home/mitx/motion_on_movie_end.sh: 14: /home/mitx/motion_on_movie_end.sh: /home/mitx: Permission denied
/home/mitx/motion_on_movie_end.sh: 15: /home/mitx/motion_on_movie_end.sh: /home/mitx: Permission denied
/home/mitx/motion_on_movie_end.sh: 16: /home/mitx/motion_on_movie_end.sh: /home/mitx: Permission denied
/home/mitx/motion_on_movie_end.sh: 17: /home/mitx/motion_on_movie_end.sh: /home/mitx: Permission denied
/home/mitx/motion_on_movie_end.sh: 18: /home/mitx/motion_on_movie_end.sh: /home/mitx: Permission denied
/home/mitx/motion_on_movie_end.sh: 19: /home/mitx/motion_on_movie_end.sh: /home/mitx: Permission denied
/home/mitx/motion_on_movie_end.sh: 20: /home/mitx/motion_on_movie_end.sh: /home/mitx: Permission denied
/home/mitx/motion_on_movie_end.sh: 21: /home/mitx/motion_on_movie_end.sh: /home/mitx: Permission denied
/home/mitx/motion_on_movie_end.sh: 22: /home/mitx/motion_on_movie_end.sh: /home/mitx: Permission denied
Merci d’avance.
Hors ligne
#12 Le 20/05/2019, à 14:47
- cqfd93
Re : Envoie d’alerte par ‘motion’ [Résolu]
Modération : merci d'utiliser les balises code (explications ici) et donc de modifier tous les messages précédents qui contiennent du code (les scripts, les fichiers de configuration…).
− cqfd93 −
Hors ligne
#13 Le 20/05/2019, à 17:55
- Sciensous
Re : Envoie d’alerte par ‘motion’ [Résolu]
bonne nouvelle le chemin du fichier est bien reconnu
par contre je crois que le problème vient des permissions;
j'ai besoin de précisions supplémentaires:
1. as-tu créé un répertoire /home/perso ou s'agit-il de /home/mitx ?
2. est-il nécessaire de faire un "sudo motion" ?
3. peux-tu remettre le contenu du script on_movie_end sh ?
(avec les balises: c'est-à-dire en utilisant le symbole <> en haut de la fenêtre d'édition)
antiX 19 et 21 et Ubuntu 20.04 et 22.04
( sous LXDE et gnome-shell )
Hors ligne
#14 Le 20/05/2019, à 20:05
- Dimoi
Re : Envoie d’alerte par ‘motion’ [Résolu]
Merci pour votre patience,
Voici les réponses à vos questions :
1. Le nom du répertoire est /home/mitx
2. Je ne connais pas d’autres manières que ‘$ sudo motion’ pour démarrer motion.
Lorsque j’ai entré ‘$ sudo motion’, il a démarré avec celui-ci donc je suis resté dans cette façon.
3. Le contenu du script motion_on_movie_end.sh :
#!/bin/sh
echo "video=$1">/home/mitx/video.tmp
AVI_PATH=$1
AVI_DIR=`dirname $AVI_PATH`
EMAIL_TO==monadresse@gmail.com
EMAIL_SUB="camerasurveillance"
EMAIL_BODY="capte un mouvement"
MUTT_CONF=/home/mitx/mutt.conf
# send email by mutt & gmail
echo $EMAIL_BODY | mutt -F $MUTT_CONF -s $EMAIL_SUB $EMAIL_TO
Hors ligne
#15 Le 21/05/2019, à 13:34
- Sciensous
Re : Envoie d’alerte par ‘motion’ [Résolu]
Remettre l'option -a $AVI_PATH dans le script motion_on_movie_end.sh :
(en gros il manquait le %f dans le fichier motion.conf qui contenait le nom de la vidéo, passé en paramètre ($1) dans le script)
#!/bin/sh
AVI_PATH=$1
AVI_DIR=`dirname $AVI_PATH`
EMAIL_TO==monadresse@gmail.com
EMAIL_SUB="camerasurveillance"
EMAIL_BODY="détection d’un mouvement"
MUTT_CONF=/home/perso/mutt.conf
# send email by mutt & gmail
echo $EMAIL_BODY | mutt -F $MUTT_CONF -s $EMAIL_SUB -a $AVI_PATH -- $EMAIL_TO
antiX 19 et 21 et Ubuntu 20.04 et 22.04
( sous LXDE et gnome-shell )
Hors ligne
#16 Le 21/05/2019, à 19:15
- Dimoi
Re : Envoie d’alerte par ‘motion’ [Résolu]
Ça marche !!!:lol:
Merci infiniment.
Par contre, je n’arrive pas à supprimer des vidéos qui sont accumulées dans le fichier /home/mitx/motion.
Savez-vous comment accorder cette permission ?
Ce sera la dernière question.
Hors ligne
#17 Le 21/05/2019, à 20:12
- Sciensous
Re : Envoie d’alerte par ‘motion’ [Résolu]
super
pour les supprimer, c'est la conséquence du sudo motion, les vidéos appartiennent à root
dans le répertoire des vidéos:
sudo rm -i *.avi
pour ne pas avoir à lancer motion en root, que donne
which motion
antiX 19 et 21 et Ubuntu 20.04 et 22.04
( sous LXDE et gnome-shell )
Hors ligne
#18 Le 21/05/2019, à 23:19
- Dimoi
Re : Envoie d’alerte par ‘motion’ [Résolu]
Sciensous,
J’ai pu effacer les vidéos.
Vous m’avez beaucoup aidé.
Encore merci infiniment et intensément !!
Hors ligne
#19 Le 23/05/2019, à 10:32
- Sciensous
Re : Envoie d’alerte par ‘motion’ [Résolu]
Le plaisir est partagé,
pense à mettre Résolu dans le titre de la discussion
(ton premier message, éditer et changer le titre)
antiX 19 et 21 et Ubuntu 20.04 et 22.04
( sous LXDE et gnome-shell )
Hors ligne