Salut,
Je suis en train de bricoler un script (à partir d’un script emprunté à NixCraft) qui est censé vérifier si mes services tournent et m’envoyer un message sur mon ejabberd en cas d’echec.
Voici ou j’en suis:
[code]chk_services(){
Quels ports sont à l’écoute ?
RPORTS=$($NETSTAT -tulpn | grep -vE ‘^Active|Proto’ | grep ‘LISTEN’ | awk ‘{ print $4}’ | awk -F: ‘{print $NF}’ | sed ‘/^$/d’ | sort -u)
for t in $ports
do
sname=$(echo $service | cut -d' ' -f$c)
echo -en " $sname\t\t\t : "
echo -en " $sname\t\t\t : " >> $LOG
for r in $RPORTS
do
if [ "$r" == "$t" ]
then
status="YES"
sendjabb=1
break
fi
done
echo -n "$status"
echo ""
echo -n "$status" >>$LOG
echo "" >>$LOG
[ $logtosyslog -eq 1 ] && $LOGGER "$sname service running : $status"
# MAJ compteur
c=$( expr $c + 1 )
status="NO"
done
if [ $sendjabb -eq 1 ];
then
sendxmpp -m $LOG $JABBID
fi
}[/code]
Mon problème est que le script envoie systématiquement un message, même si tous les service fonctionnent…
J’aimerais ne recevoir une alerte que lorsqu’un service tombe…
Voici ce que m’envoie le script sur mon pidgin…
quote toto@monserveur.tld: -------------------------------------------------------------
Running services status @ admin@monserveur.tld [ mardi 15 mai 2012, 14:32:19 (UTC+0200) ]
SSH : YES
DNS : YES
WEB : YES
MAIL : YES
This is an automatically generated Linux service status notification by /usr/local/bin/watchservices.sh script.[/quote]
Si vous aviez une idée, j’en serais ravi!
Merci.