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_postqueueNagios doit exécuter ce script via check_by_ssh. Enjoy J’espère que ça vous fera gagner un peu de temps… Si vous avez des questions, des remarques…n’hésitez pas. Je complèterais volontiers en cas de problème. A bientôt amis/es du Libre.
[ad]