Contenu | Rechercher | Menus

Annonce

Si vous avez des soucis pour rester connecté, déconnectez-vous puis reconnectez-vous depuis ce lien en cochant la case
Me connecter automatiquement lors de mes prochaines visites.

À propos de l'équipe du forum.

#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)
cool


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

#5 Le 18/05/2019, à 04:16

cqfd93

Re : Envoie d’alerte par ‘motion’ [Résolu]

Modération

Bonjour,

Pour ajouter toi-même les balises code à ton message #4 :

  • Cliquer sur le lien « Modifier » en bas à droite du message

  • Sélectionner le texte

  • Cliquer sur le <> de l'éditeur de message
    1471986854.png


cqfd93

En 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)

cool


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 smile

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

En 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 smile

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)

cool


antiX 19 et 21 et Ubuntu 20.04 et 22.04
( sous LXDE et gnome-shell )

Hors ligne