Bonjour à tous.
J'essaie de faire un script qui ping plusieurs ips et envoie un mail si l'une d'entre elle n'est pas joignable.
Lorsque je lance le script manuellement (./script.sh) le script fonctionne parfaitement bien. il envoie le mail quand il faut et le n'envoie pas quand il ne le faut pas.
Par contre, lorsque je mets mon script dans une tache cron, qui s’exécute toutes les minutes, je vois dans les logs une tentative d'envoie de mail alors qu'il n'y a aucune raison d'envoyer le mail...
script.sh :
#!/bin/bash
temps=`date -d 'now' '+%F %T'`
for i in $( cat $HOME/Scripts/PingV2/iplist )
do
ping -q -c1 $i > /dev/null
if [ $? -eq 0 ]
then
echo $i "OK"
sed -i -e /^$i/d $HOME/Scripts/PingV2/injoignable #Si le switch est up, on le supprime des injoignables
sed -i -e /^$i/d $HOME/Scripts/PingV2/mailenvoye
elif [[ `cat $HOME/Scripts/PingV2/mailenvoye` = $i ]]
then
echo "mail deja envoye"
elif grep -q "$i" $HOME/Scripts/PingV2/injoignable # Si l'ip est présente dans le fichier,
then
echo "Ne fais rien."
else
echo $i >> $HOME/Scripts/PingV2/mailenvoye
echo $i "depuis :" $temps >> $HOME/Scripts/PingV2/injoignable
/usr/sbin/sendmail "adressemail@mail.fr" < $HOME/Scripts/PingV2/injoignable
fi
done
scripttroisheures.sh
#!/bin/bash
for i in $( cat $HOME/Scripts/PingV2/iplist )
do
if grep -q "$i" $HOME/Scripts/PingV2/injoignable
then
echo "envoie mail"
/usr/sbin/sendmail "adressemail@mail.fr" < $HOME/Scripts/PingV2/injoignable
else
echo "envoie pas mail"
fi
done
injoignable :
From: mail@mail.fr
To: mail2@mail.fr
Subject: ping check
IP depuis : 2018-08-17 14:34:43
Une image du log mail :
http://i.imgur.com/gcORQ8O.png
Le script.sh est celui qui s'execute toutes les minutes.
Le scripttroisheures.sh est celui qui s'execute toutes les 3h pour me rappeler qu'un switch est toujours down et ainsi évité d'être spammé de mails.
N'hésitez pas a poser des questions si vous ne comprenez pas le script.
Egalement, s'il y a des erreurs, n'hésitez pas a me les signaler. Je ne sais pas coder dans ce langage, j'ai juste bricolé des scripts trouvés içi et là ...
Merci pour votre aide !