Salut salut ! Ça faisait longtemps ? Il faut dire que j’ai très peu de temps en ce moment
Alors voilà je vous poste un petit script qui vous permettra de vérifier la file d’attente de Postfix sur vos serveurs depuis Nagios.
#!/bin/bash
set -e
print_help(){
echo "Usage : $0 -w WARNING -c CRITIQUE "
echo -e "Where
\t- Warning à partir de ce nombre de mail;
\t- Critique à partir de ce nomre de mail;
"
}
check_parameters(){
# On vérifie si WARNING est un entier positif
if [ $(echo ${WARNING} | grep -v [a-Z] | wc -l) -eq 0 ]
then
echo "Erreur : valeur ${WARNING} non entiere positive !"
print_help
exit 1;
fi
# On vérifie si CRITIQUE est un entier positif
if [ $(echo ${CRITIQUE} | grep -v [a-Z] | wc -l) -eq 0 ]
then
echo "Erreur : valeur ${CRITIQUE} non entiere positive !"
print_help
exit 1;
fi
}
check_postqueue(){
NB_MAIL_TMP=`postqueue -p | tail -n1 | sed -e 's/.*in \([0-9]\+\) Requests.*/\1/'`
if [ "${NB_MAIL_TMP}" = "Mail queue is empty" ]
then
NB_MAIL=0;
fi
NB_MAIL=${NB_MAIL_TMP}
if [ ${NB_MAIL} -le ${WARNING} ]
then
echo "OK : Quelques mails..."
exit 0
elif [ ${NB_MAIL} -ge ${CRITIQUE} ]
then
echo "Aie : Critique : beaucoup trop de mails..."
exit 2
else
echo "Oups : Warning : faut jeter un oeil..."
exit 1
fi
}
while getopts "w:c:h" OPTION
do
case ${OPTION} in
w ) WARNING="${OPTARG}"
;;
c ) CRITIQUE="${OPTARG}"
;;
h ) print_help
exit 0
;;
esac
done
if [ $# -ne 4 ]
then
print_help
exit 1
fi
check_parameters
if [ $? != 0 ]
then
exit 1
fi
check_postqueue
Nagios doit exécuter ce script via check_by_ssh. Enjoy 
[ad]
