diff --git a/SHELL/check_nbproc.sh b/SHELL/check_nbproc.sh new file mode 100644 index 0000000..ab7e422 --- /dev/null +++ b/SHELL/check_nbproc.sh @@ -0,0 +1,100 @@ +#!/bin/ksh + +# TITRE check_nbproc.sh +# DESCRIPTION : Script de check du nombre de processus +# USAGE : lancement du script en ajoutant l'argument -p -c +# HISTORIQUE : +# T | Date | Auteur | Description +#---+------------+------------------------------+------------------------------------ +# A | 16/07/21 | Demonic | Création +# ----------------------------------------------------------------------------------- + + +######################################### +## DECLARATION DES VARIABLES ## +######################################### + +# INITIALISATION DESCRIPTION ALERTE NAGIOS +statusReport="" +# INITIALISATION SEVERITE ALERTE NAGIOS (OK PAR DEFAUT) +severityReport=0 +# INITIALISATION VARIABLE DU NOM DU PROCESSUS +NOMPROC="" +# INITIALISATION VARIABLE DU NOMBRE TOTAL DE PROCESSUS VOULU +NBOK="" +# INITIALISATION VARIABLE DU NOMBRE TOTAL DE PROCESSUS PRESENT +NBPROC="" + +######################################### +## DECLARATION DES FONCTIONS ## +######################################### + +# decho(){ +# [ ${debug} -gt 0 ] && echo $* +# } + +# FONCTION POUR DEFINIR LA SEVERITE DE L'ALERTE +setSeverity(){ + severityToSet=${1} + case ${severityToSet} in + 0)[ ${severityReport} -lt 1 ] && severityReport=0;; + 1)[ ${severityReport} -lt 2 ] && severityReport=1;; + 2) severityReport=2;; + esac +} + +# FONCTION USAGE (option -h) +USAGE(){ + echo "Ce script permet de vérifier le nombre de processus actifs pour un processus donné et renvoyer une alerte via Nagios si moins/plus de processus" + echo "USAGE : check_nbproc.sh -p -c " + exit 0 +} + +######################################### +## RECUPERATION DES ARGUMENTS ## +######################################### + +# ARGUMENT -p : NOM DU PROCESSUS +# ARGUMENT -c : NOMBRE DE PROCESS VOULU +# ARGUMENT -h : USAGE + +while getopts ":p:c:h:" opt; do + case "${opt}" in + p) NOMPROC="${OPTARG}";; + c) NBOK="${OPTARG}";; + h) USAGE;; + esac +done + +######################## +## PROGRAMME ## +######################## + +# LISTING DU NOMBRE DE PROCESSUS +NBPROC=$(ps -ef | grep -i "$NOMPROC" | grep -v grep | grep -v "check_" | wc -l) + +# CONDITION POUR DETERMINER SI CHECK OK/KO +if [ $NBPROC -eq $NBOK ]; then + # CHECK OK + # FORMATTAGE CONTENU NAGIOS + statusReport="Nombre de processus $NOMPROC OK" + +else + # CHECK KO + # PASSAGE SEVERITE NAGIOS CRITICAL + setSeverity 2 + # FORMATTAGE CONTENU NAGIOS + statusReport="Nombre de processus $NOMPROC KO | $NBPROC OK pour $NBOK voulu Processus KO de 23h à 7h, ne pas prendre en compte dans cette période." + +fi + +# AFFICHAGE DU CONTENU NAGIOS SI DEBUG +# decho "severityReport=${severityReport};statusReport=${statusReport}" + +# AFFICHAGE RESULTAT CHECK +echo "${statusReport}" + +# SORTIE DU SCRIPT AVEC SEVERITE NAGIOS +exit ${severityReport} + +# FIN DE SCRIPT