J'ai un petit souci avec un script shell qui test le ping d'un serveur, si pas de réponse, j'envoie un mail avec exim4 et je créé un fichier erreur (afin de pas recevoir le mail à chaque execution du cron) fichier que je détruit ensuite quand cela refonctionne ...
Il fonctionne tres bien quand je l'execute en directe ... en revanche en tache cron il ne fonctionne pas completement, le fichier est bien créé et supprimé en revanche le mail ne part jamais ...
Si vous avez une idée du pourquoi du comment ...
Voici le script :
#!/bin/sh
cd /root/test
machine="www.monsite.com"
ping="ping -c 1 -q $machine"
fichier="erreur"
if $ping | grep -E "min/avg/max" > /dev/null
then if [ -e "$fichier" ];
then rm -f "$fichier"
fi
else
if [ -e "$fichier" ];
then cat /dev/null
else
cat /dev/null > "$fichier";
exim4 -v 0606060606@orange.fr < mail.txt;
fi
fi
Et l'appel en cron :
*/1 * * * * /root/test/test.sh > /root/test/log
Le fichier de log est toujours vide ...
Si quelqu'un a une idée ... merci d'avance
# erreur ?
Posté par NeoX . Évalué à 2.
#!/bin/sh
cd /root/test
machine="www.monsite.com"
ping="ping -c 1 -q $machine"
fichier="erreur"
pas de soucis jusque là
if $ping | grep -E "min/avg/max" > /dev/null
ca chez moi ca me renvoi toujours un truc, que ca ping ou pas donc c'est toujours valide
then if [ -e "$fichier" ];
then rm -f "$fichier"
fi
ce code sera toujours executer car le if $ping est toujours valide
du coup le code qui reste ne sera jamais executé
else
if [ -e "$fichier" ];
then cat /dev/null
else
cat /dev/null > "$fichier";
exim4 -v 0606060606@orange.fr < mail.txt;
fi
fi
[^] # Re: erreur ?
Posté par Joris Dedieu (site web personnel) . Évalué à 2.
Plusieurs choses par ailleurs :
- Les variables d'environnement sont réduites dans le contexte d'un cron dont exporter un path n'est pas une mauvaise idée même si l'usage est plutôt d'invoquer des commandes par le chemin absolue.
- En redirigeant la sortie d'erreur vers ton fichier de log, tu devrais avoir quelque chose de plus verbeux (tu sais les histoires de 2>&1)
Suivre le flux des commentaires
Note : les commentaires appartiennent à celles et ceux qui les ont postés. Nous n’en sommes pas responsables.