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 06/12/2017, à 14:17

pem1664

[RESOLU] Cron et envoi de mails d'erreur

Salut,
j'ai un pi qui me sert de passerelle sur lequel j'ai installé ssmtp et mailutils, ils me servent a envoyer l'adresse ip exterieur du pi et a relancer le wifi quand il n'y a pas de ping (connexion via GSM et partage de connexion).
Tout fonctionne sauf que je suis envahi de mail de cron des qu'il m'envoie un mail et je ne vois pas du tout d'ou cela vient..
Config :
ssmtp.conf :

#
# Config file for sSMTP sendmail
#
# The person who gets all mail for userids < 1000
# Make this empty to disable rewriting.
root=postmaster

# The place where the mail goes. The actual machine name is required no
# MX records are consulted. Commonly mailhosts are named mail.domain.com
mailhub=smtp.gmail.com:587

# Where will the mail seem to come from?
#rewriteDomain=

# The full hostname
#hostname=passerelle

# Are users allowed to set their own From: address?
# YES - Allow the user to specify their own From: address
# NO - Use the system generated From: address
#FromLineOverride=YES
AuthUser=moi@gmail.com
AuthPass=passwd
UseSTARTTLS=YES

revaliases :

# sSMTP aliases
#
# Format:       local_account:outgoing_address:mailhub
#
# Example: root:your_login@your.domain:mailhub.your.domain[:port]
# where [:port] is an optional port number that defaults to 25.
moi@gmail.com:smtp.gmail.com:587

crontab -e :

*/30 *   * * *   /home/pi/scripts/bash/wifi-reboot.sh
* */6 * * *   /home/pi/scripts/bash/ip_ext.sh

script wifi :

#!/bin/bash

# L'adresse IP du serveur que vous voulez pinger (8.8.8.8 est un serveur DNS public de Google)
SERVER=8.8.8.8
#export DISPLAY=localhost:0.0
# Envoyer seulement 2 pings, et envoyer la sortie vers /dev/null
ping -c2 ${SERVER} > /dev/null

# Si le code retour du ping ($?) est différent de 0 (qui correspond à une erreur)
if [ $? != 0 ]
then
    # Restart the wireless interface
    # Relancer l'interface wifi
    sudo ifdown --force wlan0
    sudo ifup wlan0
    sudo iptables -t nat -A POSTROUTING -s 192.168.70.1/24 -o wlan0 -j MASQUERADE
SUBJ="REBOOT WIFI PASSERELLE + NOUVELLE IP Passerelle"
EMAIL="moi@gmail.com"
FROM="moi@gmail.com"
wget http://checkip.dyndns.com/ -O /home/pi/scripts/temp/index.html
cat /home/pi/scripts/temp/index.html | grep -o '[0-9]\{1,3\}\.[0-9]\{1,3\}\.[0-9]\{1,3\}\.[0-9]\{1,3\}' > /home/pi/scripts/temp/IPactuelle.txt
IPactuelle=$(cat /home/pi/scripts/temp/IPactuelle.txt)
IPenregistree=$(cat /home/pi/scripts/temp/IPenregistree.txt)
if [ "$IPactuelle" != "$IPenregistree" ] && [ "$IPactuelle" != "" ]
        then
                # On remplace le fichier IPenregistree.txt par IPactuelle.txt
                cp /home/pi/scripts/temp/IPactuelle.txt /home/pi/scripts/temp/IPenregistree.txt
 
                # On envoie la notification Pushbullet
                curl -s -u ici_votre_token_Pushbullet: https://api.pushbullet.com/v2/pushes -d type=note -d title="Raspberry Pi Passerelle - Changement IP" -d $
 
                # On ajoute une ligne dans le log qui contient la date, l'heure et l'adresse IP
                sudo echo `date +\%Y\%m\%d` - `date +\%T` - IP : $IPactuelle >> /var/log/notify-change-IP-`date +\%Y\%m`.log
fi
 
# On supprime le fichier index.html
rm /home/pi/scripts/temp/index.html


  echo "$IPactuelle" | mail -s "$SUBJ :$IPactuelle"  -t $EMAIL -a "From:$FROM"
  
fi
 exit
fi

script ip :

#!/bin/sh

SUBJ="IP Passerelle"
EMAIL="moi@gmail.com"
FROM="moi@gmail.com"
#export DISPLAY=localhost:0.0
wget http://checkip.dyndns.com/ -O /home/pi/scripts/temp/index.html
cat /home/pi/scripts/temp/index.html | grep -o '[0-9]\{1,3\}\.[0-9]\{1,3\}\.[0-9]\{1,3\}\.[0-9]\{1,3\}' > /home/pi/scripts/temp/IPactuelle.txt
IPactuelle=$(cat /home/pi/scripts/temp/IPactuelle.txt)
IPenregistree=$(cat /home/pi/scripts/temp/IPenregistree.txt)
if [ "$IPactuelle" != "$IPenregistree" ] && [ "$IPactuelle" != "" ]
        then
                # On remplace le fichier IPenregistree.txt par IPactuelle.txt
                cp /home/pi/scripts/temp/IPactuelle.txt /home/pi/scripts/temp/IPenregistree.txt
 
                # On envoie la notification Pushbullet
                curl -s -u ici_votre_token_Pushbullet: https://api.pushbullet.com/v2/pushes -d type=note -d title="Raspberry Pi Passerelle - Changement IP" -d body="L'adresse IP publique du Raspberry Pi vient de $
 
                # On ajoute une ligne dans le log qui contient la date, l'heure et l'adresse IP
                sudo echo `date +\%Y\%m\%d` - `date +\%T` - IP : $IPactuelle >> /var/log/notify-change-IP-`date +\%Y\%m`.log
fi
 
# On supprime le fichier index.html
rm /home/pi/scripts/temp/index.html


  echo "$IPactuelle" | mail -s "$SUBJ :$IPactuelle"  -t $EMAIL -a "From:$FROM"
  exit
fi

et le mail d'erreur que je reçois en boucle a chaque exécution d'un des script :

 DNS Error: 3703546 DNS type 'mx' lookup of passerelle responded with code NXDOMAIN Domain name not found: passerelle

Final-Recipient: rfc822; pi@passerelle
Action: failed
Status: 4.0.0
Diagnostic-Code: smtp; DNS Error: 3703546 DNS type 'mx' lookup of passerelle responded with code NXDOMAIN
 Domain name not found: passerelle
Last-Attempt-Date: Wed, 06 Dec 2017 04:26:27 -0800 (PST)


---------- Message transféré ----------
From: moi@gmail.com
To: pi
Cc: 
Bcc: 
Date: Wed, 06 Dec 2017 13:26:16 +0100
Subject: Cron <pi@passerelle> /home/pi/scripts/bash/ip_ext.sh
--2017-12-06 13:26:01--  http://checkip.dyndns.com/
Résolution de checkip.dyndns.com (checkip.dyndns.com)… 216.146.43.71, 216.146.38.70, 91.198.22.70, ...
Connexion à checkip.dyndns.com (checkip.dyndns.com)|216.146.43.71|:80… connecté.
requête HTTP transmise, en attente de la réponse… 200 OK
Taille : 104 [text/html]
Sauvegarde en : « /home/pi/scripts/temp/index.html »

     0K                                                       100% 3,95M=0s

2017-12-06 13:26:02 (3,95 MB/s) — « /home/pi/scripts/temp/index.html » sauvegardé [104/104]

Voila si quelqu'un veut bien m'expliquer d'ou cela vient... j'ai beau chercher je ne vois pas pourquoi cron envoi ce mail...

Dernière modification par pem1664 (Le 06/12/2017, à 15:05)


Pas de problème sans solutions, mettre [résolu] dans son premier post permet de rechercher plus facilement une solution... ;)

Hors ligne

#2 Le 06/12/2017, à 14:57

bruno

Re : [RESOLU] Cron et envoi de mails d'erreur

La tâche cron t'envoie des courriels car ton script renvoie des infos sur au moins la sortie standard.

Redirige les sorties de ton script vers le grand trou noir Unix :

* */6 * * *   /home/pi/scripts/bash/ip_ext.sh > /dev/null 2>&1

Tu peux aussi mettre :

MAILTO=""

au début de ton crontab pour qu'il n'envoie plus du tout de courriels

Dernière modification par bruno (Le 06/12/2017, à 14:59)

Hors ligne

#3 Le 06/12/2017, à 14:58

pem1664

Re : [RESOLU] Cron et envoi de mails d'erreur

Super merci j'essaie ca smile


Pas de problème sans solutions, mettre [résolu] dans son premier post permet de rechercher plus facilement une solution... ;)

Hors ligne

#4 Le 06/12/2017, à 15:04

pem1664

Re : [RESOLU] Cron et envoi de mails d'erreur

Ben ca a l'air de fonctionner nickel la ! merci Bruno  smile sujet résolu smile


Pas de problème sans solutions, mettre [résolu] dans son premier post permet de rechercher plus facilement une solution... ;)

Hors ligne

#5 Le 06/12/2017, à 15:06

pem1664

Re : [RESOLU] Cron et envoi de mails d'erreur

bruno a écrit :

Tu peux aussi mettre :

MAILTO=""

au début de ton crontab pour qu'il n'envoie plus du tout de courriels

tu veux dire que je peux aussi définir une adresse mail pour cron comme ca?


Pas de problème sans solutions, mettre [résolu] dans son premier post permet de rechercher plus facilement une solution... ;)

Hors ligne

#6 Le 06/12/2017, à 15:09

bruno

Re : [RESOLU] Cron et envoi de mails d'erreur

Oui wink

Hors ligne

#7 Le 06/12/2017, à 15:10

pem1664

Re : [RESOLU] Cron et envoi de mails d'erreur

Super merci smile je ne savais pas smile c'est fait !


Pas de problème sans solutions, mettre [résolu] dans son premier post permet de rechercher plus facilement une solution... ;)

Hors ligne