Mise à jour le 16/04/2016

Les fêtes de fin d’années sont passées, avec les nombreuses absences, les cambriolages sont fréquents. Sans empêcher les problèmes, une surveillance vidéo en notre absence permet au moins de savoir ce qui s’y passe. C’est également un bon moyen de garder des traces de tous les mouvements détectés.

Nous utiliserons ici le logiciel motion, qui enregistre des images à intervalle régulier lorsqu’un mouvement est détecté et permet une diffusion du flux vidéo via un mini serveur http.

Cet article présentera comment exploiter motion pour recevoir par mail les images de tout mouvement repéré dans la zone de surveillance tout en ayant la possibilité de consulter le flux de la webcam via un accès sécurisé.

 

L’installation d’une vidéosurveillance implique quelques prérequis:

  • Une webcam traînant au fond d’un tiroir.
  • L’installation du paquet ‘motion’.
  • C’est tout pour un fonctionnement de base.

Pour obtenir toutes les images par mail à chaque détection de mouvement, il faut ajouter les éléments suivant:

  • Une boite mail pour la réception des images.
  • Le paquet p7zip-full pour la compression des archives, si on souhaite leur adjoindre un mot de passe.
  • Un espace de stockage pour les archives trop volumineuses pour être jointes par mail.

Enfin, pour profiter de la diffusion sécurisée du flux de la webcam, il nous faudra ceci:

  • Un serveur apache fonctionnel. Tutoriel apache.
  • Ou tout autre serveur capable de gérer un reverse proxy.
  • Un certificat SSL à jour. Tutoriel SSL.

Nous supposerons donc que tout ces éléments sont présents et fonctionnels.

Installation et configuration de motion

Pour commencer, installer les paquets motion et p7zip-full.

sudo apt-get install motion p7zip-full

Avant de configurer motion, il est nécessaire de localiser la webcam. Elle doit se trouver dans /dev/videoX.
Un ls /dev/video* permettra d’afficher les différents périphériques connecté sous ce nom.
Si aucun autre périphérique vidéo n’est installé, la webcam se trouvera en /dev/video0.

La configuration de motion se fait par le fichier /etc/motion/motion.conf, que nous modifierons comme suit:

[...]
videodevice /dev/video0
[...]
width 1024
[...]
height 768
[...]
framerate 3
[...]
# The quality (in percent) to be used by the jpeg compression (default: 75)
quality 90
[...]
ffmpeg_cap_new off
[...]
locate on
[...]
target_dir /DIR/DOSSIER_POUR_MOTION
[...]

En détail:
videodevice /dev/video0
Le chemin de la webcam à utiliser.

width 1024
height 768

La résolution de l’image souhaitée.
À définir en fonction des capacités de la webcam utilisée et du volume des images produites. Il ne faut pas oublier en effet que les images seront ensuite envoyées par mail et doivent donc être peu volumineuses.

Motion accepte uniquement les résolutions multiple de 16, ce qui exclue d’office le simple 800*600.
Pour connaître les résolutions acceptées par la webcam, installez le paquet v4l-utils.

sudo apt-get install v4l-utils
sudo v4l2-ctl --list-formats-ext

framerate 3
Le nombre d’images créées par secondes.
3 images par seconde reste un bon choix pour garder une vision claire des mouvements tout en préservant le volume d’images produites.

# The quality (in percent) to be used by the jpeg compression (default: 75)
quality 90

La compression jpeg des images produites. Là encore il est bon de vérifier la taille des images. Pour ma part les fichiers font environ 20ko. (Ce qui produit des fichiers joint de 7 à 9mo maximum par mail)

ffmpeg_cap_new off
Interdit la création d’une vidéo de l’événement, ce qui alourdirait inutilement l’archive à envoyer par mail.

locate on
Permet de mettre en évidence sur chaque image les mouvements détectés en les encadrant.

target_dir /DIR/DOSSIER_POUR_MOTION
Le dossier de destination des images enregistrées par motion.
Les images n’étant pas supprimées automatiquement, il bon de garder un accès à ce dossier pour le vider manuellement.

Motion dispose d’un multitude d’autres options intéressantes. Elles sont toutes décrites à cette page du wiki de motion.

 

A présent que motion est installé et configuré, nous allons pouvoir tester son bon fonctionnement en le démarrant dans le terminal.

sudo motion

Si vous obtenez une erreur du type:
[1] Unable to find a compatible palette format.
[1] ioctl (VIDIOCGCAP): Invalid argument

C’est sans doute que votre webcam nécessite v4l1 au lieu de v4l2 utilisé par
défaut par motion.
Il est donc nécessaire de forcer l’usage de v4l1 par motion.
Tout d’abord nous allons installer ‘libv4l-0’.

sudo apt-get install libv4l-0

Puis relancer motion en utilisant v4l1.

sudo LD_PRELOAD=/usr/lib/i386-linux-gnu/libv4l/v4l1compat.so motion

Motion étant démarré et fonctionnel avec notre webcam, on peut à présent affiner les réglages de motion et constater les images enregistrées par celui-ci.
Il sera bien évidemment nécessaire de redémarrer motion après chaque modification de son fichier de configuration.

A présent que motion est configuré correctement, nous allons lui demander de démarrer en tant que daemon afin qu’il soit lancé au démarrage de la machine.
Pour cela il faut éditer les fichiers /etc/motion/motion.conf ET /etc/default/motion
Dans /etc/motion/motion.conf

daemon on

Et dans /etc/default/motion

start_motion_daemon=yes

Si la webcam nécessite v4l1
au lieu de v4l2, il faudra que motion le charge au démarrage. Pour cela, il faut modifier le fichier /etc/init.d/motion.

Après avoir repéré le paragraphe,

case "$1" in
  start)
    if check_daemon_enabled ; then

Ajouter la ligne suivante juste après ‘start)’

export LD_PRELOAD=/usr/lib/i386-linux-gnu/libv4l/v4l1compat.so

A ce stade, motion va donc enregistrer 3 images par secondes dés lors qu’un mouvement est détecté dans le champs de la webcam.

Attention toutefois à bien vérifier les droits d’écriture de l’user ‘motion’ dans le dossier d’images. En effet, motion a la mauvaise habitude de s’arrêter de lui même dés lors qu’il est confronté à une erreur d’accès au dossier…
On peut vérifier ce comportement en vérifiant le log de motion dans /var/log/syslog

Filtrage du log de motion

Dans la configuration présente, tout va bien tant qu’on ne débranche pas la webcam.
En effet, dés lors que la webcam est débranchée, motion va tenter de la détecter à nouveau. Ce comportement est en soi une bonne chose car il nous permettra de simplement brancher la webcam pour retrouver les services de motion.
Mais dans le même temps, motion inscrit 2 lignes dans le fichier de log /var/log/syslog toutes les 10 secondes tant qu’il ne retrouve pas la webcam! Créant ainsi un log de plusieurs mo chaque jour, totalement illisible…

Nous allons donc filtrer ce log afin d’éviter ces 2 entrées qui nous sont totalement inutiles.
On va commencer par créer un nouveau fichier de conf pour rsyslogd:

sudo nano /etc/rsyslog.d/40-motion.conf

Et le remplir ainsi:

#Filtrage du log de motion.
#On filtre les entrées de log contenant les 2 chaines suivantes.
:msg, contains, "Retrying until successful connection with camera" ~
:msg, regex, "Failed to open video device /dev/video([0-9]): No such file or directory" ~
#Ainsi on évite un flood de motion dans syslog 
toutes les 10 secondes!

Il est important que le nom du fichier ‘conf’ soit précédé de 40, afin d’avoir une priorité plus importante que le fichier général ’50-default.conf’. Sans quoi la règle de filtrage interviendrait trop tard.
On peut à présent redémarrer rsyslogd pour recharger sa configuration.

sudo /etc/init.d/rsyslog restart

Plus d’infos sur le filtrage de rsyslog.

 

Envoi des images par mail

A présent que motion enregistre des images dés qu’il perçoit un mouvement, il est intéressant d’en être averti et pouvoir consulter ces mêmes images indépendamment du serveur.
En cas de cambriolage, il serait en effet dommage que les intrus partent avec toutes les images en embarquant simplement le serveur!

Motion lui même n’est pas capable de remplir cette tâche, nous allons donc confier cela à un simple script, placé dans le dossier des images crées par motion.

#!/bin/bash

IMG_DIR=/DIR/DOSSIER_POUR_MOTION
TAILLE_MAX=`expr 1048576 \* 9` # Taille maximale de l'archive pour envoi en Mo
MAIL_DEST="adresse@domain.tld"

BCL=0	#Compte le nombre de boucle
REBCL=1

while [ $REBCL -eq 1 ]
do
    #Liste les fichiers à inclure.
    ls -1 $IMG_DIR/*.jpg > $IMG_DIR/liste 2> /dev/null
    NB_IMG=$(wc -l $IMG_DIR/liste | cut -d ' ' -f 1)	# Détermine le nombre d'image en comptant les lignes du fichier de liste

    #Détermine la date exact de l'événement (head prend la première ligne, puis cut découpe le nom de fichier pour ne garder que milieu du nom.
    CHAINE=$(head -n 1 $IMG_DIR/liste | cut -d "-" -f 2 | cut -d " " -f 1)
    ANNEE=$(echo $CHAINE | cut -c 1-4)
    MOIS=$(echo $CHAINE | cut -c 5-6)
    JOUR=$(echo $CHAINE | cut -c 7-8)
    HEURE=$(echo $CHAINE | cut -c 9-10)
    MINUTE=$(echo $CHAINE | cut -c 11-12)

    ARCHIVE=$JOUR.$MOIS.$ANNEE-$HEURE,$MINUTE-$BCL.7z

    if [ $BCL -eq 0 ]
    then
		sleep 5		#Patiente 5 secondes pour laisser le temps à la webcam d'enregistrer
		#Ne garde que les 10 premières images de la liste pour envoyer un premier échantillon
		ls -1 $IMG_DIR/*.jpg > $IMG_DIR/liste 2> /dev/null
		NB_IMG=$(wc -l $IMG_DIR/liste | cut -d ' ' -f 1)	# Détermine le nombre d'image en comptant les lignes du fichier de liste
		head -n 10 $IMG_DIR/liste > $IMG_DIR/liste10
		if [ $NB_IMG -gt 1 ]
		then
			#Créer l'archive des images et vidéos à joindre au mail, seulement si il y a plusieurs images.
			7z a -t7z -mmt=on -mx=9 -ms=on -pmot_de_passe "$IMG_DIR/$ARCHIVE" @$IMG_DIR/liste10
		fi
    elif [ $NB_IMG -gt 1 ]
	then
		#Créer l'archive des images et vidéos à joindre au mail, seulement si il y a plusieurs images.
		7z a -t7z -mmt=on -mx=9 -ms=on -pmot_de_passe "$IMG_DIR/$ARCHIVE" @$IMG_DIR/liste
	fi

    #Corps du mail
    echo "Motion semble avoir détecté un mouvement à $HEURE:$MINUTE le $JOUR/$MOIS/$ANNEE." > $IMG_DIR/corps_mail
    echo "" >> $IMG_DIR/corps_mail
    echo "Mot de passe de l'archive: indice_du_mot_de_passe" >> $IMG_DIR/corps_mail
    echo -n "L'archive contient $NB_IMG" >> $IMG_DIR/corps_mail
    if [ $NB_IMG -eq 1 ]
    then
		echo " photo." >> $IMG_DIR/corps_mail
    else
		echo " photos." >> $IMG_DIR/corps_mail
    fi

    ARCH_MAX=0
	if [ $NB_IMG -gt 1 ]	# Si il y a plus d'une image
	then
		if [ $(stat -c "%s" "$IMG_DIR/$ARCHIVE") -gt $TAILLE_MAX ]
		then	# Si la taille de l'archive excède la limite
			ARCH_MAX=1      #Indique une taille trop importante de l'archive pour un envoi
			echo "L'archive est trop volumineuse pour être envoyée par mail. Accès aux archives: https://domain.tld/accès_motion_dir" >> $IMG_DIR/corps_mail
		fi
	fi
    echo "Accéder à la webcam: https://domain.tld/motion_cam" >> $IMG_DIR/corps_mail

    # Prend la 5e image prise par la webcam pour l'afficher dans le mail. (Si il y a moins d'images, la dernière est prise)
    IMAGE=$(head -n 5 $IMG_DIR/liste | tail -n -1)

    #Envoi du mail
    MUTTRC=/EMPLACEMENT/ARBITRAIRE/DU/FICHIER/DE/CONFIG/MUTT/Muttrc
    if [ $NB_IMG -eq 1 ] || [ $ARCH_MAX -eq 1 ]
    then	# Ne joint pas l'archive si il n'y qu'une seule image ou si l'archive dépasse la taille maximale.
		mutt -F "$MUTTRC" -s "Motion" -i $IMG_DIR/corps_mail -a "$IMAGE" -- $MAIL_DEST < /dev/null
    else
		mutt -F "$MUTTRC" -s "Motion" -i $IMG_DIR/corps_mail -a "$IMAGE" "$IMG_DIR/$ARCHIVE" -- $MAIL_DEST  /dev/null 2>&1	#Teste la présence de fichier jpg dans le dossier (en exploitant le code d'erreur de ls)
    then
		REBCL=0
    fi
    BCL=$(($BCL + 1))	#Incrémente le compteur de boucle
done

# 7z
# a    Add
# -t7z	Archive 7z
# -mmt=on	Sets multithreading mode.
# -mx=3	Sets level of compression.
# -ms=on	Sets solid mode.
# -p{password}	Specifies password.
# @listfile.txt

# mutt
# -a file              Attach a file to your message using MIME.
# -i include           Specify a file to include into the body of a mes­sage.	???
# -s subject           Specify the subject of the message.

Le script fonctionne de la façon suivante:

  1. Scan du dossier des images pour lister les images et les vidéos présentes. (Adaptez l’extension jpg si vous n’utilisez pas les mêmes options dans motion)
  2. Parse le nom de la première image pour déterminer l’heure et la date.
  3. Création d’une archive contenant les 10 premières images. Seulement lors du démarrage du script. Ceci permet d’avoir un échantillon rapide de l’événement détecté.
  4. Sinon, création d’une archive contenant toutes les images enregistrées. Les images sont supprimées après avoir été archivées.
  5. L’archive est ajoutée au contenu du mail en pièce jointe ainsi qu’une image pour avoir un visuel immédiat.
  6. Puis envoyé par mail.
  7. Le script patiente 2 minutes, puis vérifie si de nouvelles images ont été enregistrées.
  8. Si de nouvelles images sont détectées, le script reprend à l’étape 1 en ignorant l’étape 3.
  9. Le script prend fin si aucune nouvelle image n’est trouvé à l’étape 7

Attention à l’adresse mail utilisée, certain fournisseur filtre d’office les mails provenant d’un serveur n’utilisant pas de nom de domaine pour s’identifier. C’est le cas notamment de yahoo…
On peux vérifier l’envoi du mail en consultant /var/log/mail.log
Il est aussi vivement déconseillé d’envoyer le mail sur une adresse hébergée par le même serveur, l’intérêt de la manoeuvre étant également de sécuriser les images en les envoyant sur un serveur à l’abri de ce qui se passe chez vous!

mutt a la fâcheuse idée de vouloir créer une copie du mail envoyé dans le dossier utilisateur. Or l’utilisateur motion n’ayant pas de dossier home, mutt tente d’écrire dans /root, mais il n’a pas l’autorisation de le faire. Cela provoque un plantage de mutt, qui empêche l’envoi du mail. Nous allons donc demander à mutt de ne pas faire cette copie, en lui précisant dans un fichier de config dédié.
Ce fichier de config peut être placé n’importe où. Par convenance, nous le placeront au même endroit que le script lui-même.

cp /etc/Muttrc /EMPLACEMENT/ARBITRAIRE/DU/FICHIER/DE/CONFIG/MUTT/Muttrc
echo "set copy=no" >> /EMPLACEMENT/ARBITRAIRE/DU/FICHIER/DE/CONFIG/MUTT/Muttrc

Le script doit être rendu exécutable,

sudo chmod +x /DIR/DOSSIER_POUR_MOTION/SCRIPT.sh

puis utilisé par motion dés lors qu’il détecte un mouvement. Cela peut être fait en exploitant l’option on_event_start du fichier de config de motion.

# Command to be executed when an event starts. (default: none)
# An event starts at first motion detected after a period of no motion defined by gap 
on_event_start /DIR/DOSSIER_POUR_MOTION/SCRIPT.sh

Après redémarrage de motion, nous seront donc averti de tout mouvement par des mails contenants les images prises par la webcam.

Il faut bien considérer que 3 images par seconde durant 2 minutes font 360 fichiers par archives. Il est donc important de veiller au volume de chaque fichier image.
En effet, les archives trop volumineuses seront notifiées par mail, mais pas jointe à celui-ci.

Supprimer automatiquement les anciennes images de la webcam

Avec le temps, de nombreuses archives d’images sont créés dans le dossier de motion. Ces archives appartiennent à motion et ne peuvent donc pas être supprimées simplement.
Afin de nettoyer régulièrement ce dossier, nous allons ajouter une tâche cron pour automatiser la suppression des archives d’images trop ancienne et devenue inutiles.

Pour cela, il faut créer un fichier dans /etc/cron.d

sudo nano /etc/cron.d/motion_clean

Et écrire le code suivant:

# Suppression des vieilles images de motion (Datant de plus de 2 mois)

0 5 * * * motion find /DIR/DOSSIER_POUR_MOTION/*.7z -mtime +60 -exec rm {} \;

La tâche cron s’exécutera toutes les nuits à 5h et supprimera toute archive 7z datant de plus de 2 mois dans le dossier des images de motion.

 

Diffusion sécurisée du flux vidéo de la webcam

Motion utilise un mini serveur http embarqué pour diffuser le flux de la webcam, mais ne permet ni de restreindre les accès ni de le sécuriser. Permettre un accès distant à cette page reviendrais donc à permettre à n’importe qui de voir ce qui se passe chez nous. A éviter donc!

Il est pourtant intéressant de pouvoir consulter le flux de sa webcam, en particulier si motion vous averti de mouvements suspects et avérés. Nous allons donc sécuriser l’accès à cette page, afin de pouvoir la consulter en toute sécurité en s’identifiant.

Merci à Johnny Rahmé, dont j’ai suivi les indications pour cette partie, qui explique sur son blog la méthode à suivre.

Nous allons donc créer un reverse-proxy en SSL à l’aide d’apache afin de rooter l’accès à la page de motion tout en demandant une identification. L’ensemble étant sécurisé par SSL.

Tout d’abord, il faut configurer motion pour qu’il diffuse sur son mini-serveur http.
Ceci se passe dans /etc/motion/motion.conf

[...]
webcam_port 8081
[...]
webcam_quality 100
[...]
webcam_maxrate 24
[...]
webcam_localhost on
[...]

webcam_port 8081
Représente le port du serveur http de motion, le port importe peu, tant qu’aucun autre logiciel ne l’utilise également.

webcam_quality 100
Qualité de la vidéo diffusée. Ma webcam étant médiocre, j’ai choisi la qualité maximum, c’est à modérer en fonction de sa connexion.

webcam_
maxrate 24

Le nombre d’images par seconde pour la vidéo.

webcam_localhost on
On restreint le mini-serveur http à un accès local uniquement, c’est indispensable de garder cette option à ‘on’ pour éviter toute faille de sécurité. C’est apache lui seul qui doit accéder au serveur de motion, ce qu’il fera toujours en local.

Nous allons à présent préparer apache en lui ajoutant les 2 modules nécessaires, mod_proxy et mod_proxy_http.

sudo a2enmod proxy
sudo a2enmod proxy_http

puis créer le virtualhost apache pour motion

<VirtualHost *:443>
        ServerAdmin adresse@domaine.fr
        ServerName motion.domaine.fr
        SSLEngine On
        SSLCertificateKeyFile /etc/ssl/domain.tld.key
        SSLCertificateFile /etc/ssl/domain.tld.crt

	ProxyRequests Off
        <Proxy *domain.tld/motion_cam/*>
                AuthType Basic
                AuthName "Motion webcam live"
         
       AuthUserFile /etc/apache2/htpasswd
                Require user NOM_USER
                Order deny,allow
                Allow from all
        </Proxy>
        ProxyPass /motion_cam/ http://localhost:8081
        ProxyPassReverse /motion_cam/ http://localhost:8081
        ServerSignature off
</VirtualHost>

Le fichier htpasswd servira à s’authentifier lors de l’accès à la page. Quelques infos sur sa syntaxe.
L’user mentionné en argument de ‘Require user’ doit correspondre à un user du fichier htpasswd.

Il suffit de redémarrer apache ainsi que motion pour valider toutes ces modifications.

sudo /etc/init.d/motion restart 
sudo /etc/init.d/apache2 restart

 

Activer et désactiver la webcam

A présent, il suffit de brancher notre webcam avant de partir pour être averti du moindre mouvement par mail. Dés lors, il sera possible de consulter le flux de la webcam à l’adresse https://domain.tld/motion_cam/ pour vérifier ce qui se passe.

On peut également décider de laisser la webcam branchée, et de l’activer seulement lorsqu’elle sera utile.
Pour cela il faut ajouter un script simple, dans le dossier des images.

#!/bin/bash

if [ $1 -eq 0 ]
then    # Désactivation de la webcam
        sudo sed -i "s@blacklist uvcvideo@# blacklist uvcvideo@g" /etc/modprobe.d/blacklist.conf
        sudo rmmod -f uvcvideo > /dev/null
fi

if [ $1 -eq 1 ]
then    # Activation de la webcam
        sudo sed -i "s@# blacklist uvcvideo@blacklist uvcvideo@g" /etc/modprobe.d/blacklist.conf
        sudo modprobe uvcvideo
        sudo ln -sf $(ls -1 /dev/video* | sed /video0/d) /dev/video0
fi

Qu’on rend exécutable,

sudo chmod +x /DIR/DOSSIER_POUR_MOTION/active_cam.sh

Le script va simplement ajouter ou retirer le module uvcvideo dans le noyau système. Ce module permet la prise en charge de la webcam, sans lui la webcam n’est pas reconnue et est inexploitable.

Pour utiliser simplement le script, on peux soit l’intégrer au service motion, qui n’a pas de raison de fonctionner si la webcam n’est pas disponible. Soit intégrer le service au script, selon la méthode employée pour gérer les services.

Intégrer le script au service motion

Pour ma part, le service est géré par l’interface d’administration de Yunohost.
Donc je préfère intégrer le script au service.
On modifie donc le fichier /etc/init.d/motion de la manière suivante:

Dans la section start), juste après

chown motion:motion /var/run/motion

On ajoute

/DIR/DOSSIER_POUR_MOTION/active_cam.sh 1

Et dans la section stop), juste après

log_daemon_msg "Stopping $DESC" "$NAME"

On ajoute

/DIR/DOSSIER_POUR_MOTION/active_cam.sh 0

De cette manière le démarrage et l’arrêt du service motion activera ou désactivera la webcam. Il faut toutefois également désactiver le démarrage automatique du service lorsque celui-ci est arrêté.

Intégrer le service motion au script

Dans le cas où on ne dispose pas d’une interface de gestion des services, il est plus simple d’utiliser directement le script à partir d’une connexion ssh.
Dans ce cas, on va simplement intégrer la gestion du service à notre script précédent.
En le modifiant comme suit:

#!/bin/bash

if [ $1 -eq 0 ]
then    # Désactivation de la webcam
        sudo service motion stop
        sudo update-rc.d -f motion remove
        sudo sed -i "s@blacklist uvcvideo@# blacklist uvcvideo@g" /etc/modprobe.d/blacklist.conf
        sudo rmmod -f uvcvideo > /dev/null
fi

if [ $1 -eq 1 ]
then    # Activation de la webcam
        sudo sed -i "s@# blacklist uvcvideo@blacklist uvcvideo@g" /etc/modprobe.d/blacklist.conf
        sudo modprobe uvcvideo
        sudo ln -sf $(ls -1 /dev/video* | sed /video0/d) /dev/video0
        sudo service motion start
        sudo update-rc.d motion default
fi

Comments

  1. marie on 10.13.2014

    Bonjour,
    En suivant votre tuto ,motion fonction avec l’envoie de mail.
    ca fonctionne bien, mais il faut relancer quelque fois le script.sh et ca repart.

    je pense que c le probleme de mut :
    je ne comprent pas ce que je doit faire.

    «  » » » »Nous allons donc demander à mutt de ne pas faire cette copie, en lui précisant dans un fichier de config dédié.

    cp /etc/Muttrc /EMPLACEMENT/DU/FICHIER/DE/CONFIG/MUTT/Muttrc
    echo « set copy=no » >> /EMPLACEMENT/DU/FICHIER/DE/CONFIG/MUTT/Muttrc

    merci de votre aide

    alain

  2. Maniack Crudelis on 10.13.2014

    Bonjour,

    le script a une temporisation de 2 minutes (ligne 85: sleep 120), il est donc normal qu’il n’envoie pas les mails à chaque image récupérée. Cela évite de spammer la boite mail de réception et d’être blacklisté par la même par le serveur mail.

    Le script travaille tant qu’il trouve des images et envoi les mails à 2min d’intervalle, il s’arrêtera de lui même si la caméra de détecte plus rien.

    Mutt provoque une erreur lors de l’envoi du mail, en voulant créer une copie sans en avoir l’autorisation. Cela n’impacte que l’envoi du mail, qui est alors impossible.
    Je vais modifier l’article pour clarifier ça. Mais le chemin où Muttrc est copié doit être choisi arbitrairement. Cela peut être le même dossier que les images, ou plus communément le même dossier que le script (pour tout ranger au même endroit)

  3. marie on 10.15.2014

    Bonsoir,
    OK ça fonctionne,
    une autre question:
    comment détruire les archives toutes les 48h.
    merci

  4. Maniack Crudelis on 10.15.2014

    Un simple script cron peut faire l’affaire.
    De la sorte, dans /etc/cron.d/

    0 0 */2 * * motion rm /DIR/DOSSIER_POUR_MOTION/*.7z

  5. Killthief on 03.24.2015

    Excellent tutoriel, très bien expliqué, un travail de pro !
    Merci beaucoup, et bonne continuation !

Leave a Reply