Contenu | Rechercher | Menus

Annonce

Si vous avez des soucis pour rester connecté, déconnectez-vous puis reconnectez-vous depuis ce lien en cochant la case
Me connecter automatiquement lors de mes prochaines visites.

À propos de l'équipe du forum.

#1 Le 24/02/2017, à 14:55

Hujino

Script shell - datacore - problème

Bonjour à toutes et à tous,

Suite à la mise en place d'un outil de supervision, je dois créer des scripts pour interroger mes OIDs de mes datacore et les intégrer à ma supervision.

Je débute en shell, voici mon code :

#! /bin/sh

STATE=2
PLUGIN_PATH='/srv/eyesofnetwork/nagios/plugins'
COMMAND_PATH='/bin'

   ####################################### Resultats #########################################

   #### valeur pour up to date du vDISK PRODUCTION ####

tab=(
'.32.69.52.50.50.56.68.51.66.51.69.69.54.56.68.65.65.69.69.55.57.50.68.52.55.53.55.68.52.53.57.69.70'
'.32.56.67.65.55.51.51.67.54.67.54.55.55.54.52.65.52.56.55.52.67.50.52.56.50.56.54.53.52.69.54.55.70'
'.32.68.66.69.56.65.53.54.70.66.49.70.54.57.69.52.65.68.50.69.52.67.53.52.68.67.51.51.48.70.49.57.48'
'.32.54.55.66.67.52.51.53.67.69.57.50.55.57.57.57.67.55.56.66.48.54.65.57.67.51.65.66.57.54.70.69.54'
'.32.51.56.56.66.67.68.68.51.53.69.65.57.54.50.69.53.55.69.48.65.52.69.53.68.57.54.50.53.56.48.55.49'
'.32.54.52.67.56.67.65.55.57.70.53.69.49.70.68.53.51.67.50.50.53.70.48.65.49.68.50.70.65.70.52.49.65'
'.32.52.65.70.69.68.53.53.68.48.50.53.55.49.55.54.68.57.49.49.53.70.57.51.65.51.57.69.69.65.52.57.55'
'.32.51.56.54.57.53.67.50.52.70.51.56.55.50.65.66.54.52.70.54.50.65.65.56.55.51.65.51.67.49.70.49.53'
'.32.66.53.69.52.65.57.49.70.69.54.53.51.69.51.66.65.65.66.70.48.57.70.51.53.51.65.67.51.50.57.56.69'
'.32.52.67.53.52.69.50.68.65.68.69.66.56.66.67.48.49.56.54.50.55.67.56.56.69.51.67.69.51.49.68.70.56'
   )
   
if [[ $4 = status && $6 -eq 1 || $6 -eq 2 ]]
then
for ((n=0; n < 11; n++))
do
	ar+=( "$($PLUGIN_PATH/check_snmp -H $2 -C X -o 1.3.6.1.4.1.7652.1.1.1.6"${tab[n]}" | grep to | cut -d '-' -f 2 | cut -d '"' -f 2 | cut -c -2)" )
	if [[ "${ar[n]}" == "Up" ]] ; then
	STATE=0
	else
	STATE=2
	fi
done

rslt_affiche="PRODUCTION_01 est $ar & PRODUCTION_02 est ${ar[1]} & PRODUCTION_03 est ${ar[2]} & PRODUCTION_04 est ${ar[3]} & PRODUCTION_05 est ${ar[4]} & PRODUCTION_06 est ${ar[5]} & PRODUCTION_07 est ${ar[6]} & PRODUCTION_08 est ${ar[7]} & PRODUCTION_09 est ${ar[8]} & PRODUCTION_10 est ${ar[9]}"
fi

if [[ ($4 == status) ]] ; then #affichage sur le nagios
   $PLUGIN_PATH/check_dummy $STATE "$rslt_affiche"
fi
   exit $STATE

Mon problème actuel

Mon script retourne toujours l'état "CRITIQUE" alors que tous mes vdisk sont UP.

Je pense que le problème vient de là (mon if dans ma boucle retourne la valeur STATE=2, elle arrive pas à lire mon if) :

if [[ "${ar[n]}" == "Up" ]] ; then
	STATE=0
	else
	STATE=2
	fi

J'ai testé plusieurs choses mais je n'arrive pas à corriger ce problème hmm

Et si je met :

if [[ ($ar == "Up") ]] ; then
	STATE=0
	else
	STATE=2
	fi

Il ne teste que ma première valeur hmm

Merci de votre aide.

Dernière modification par Hujino (Le 24/02/2017, à 15:15)

Hors ligne

#2 Le 24/02/2017, à 17:22

pingouinux

Re : Script shell - datacore - problème

Bonjour,
Déjà, comme tu ne sors pas de la boucle

for ((n=0; n < 11; n++))

tu ne récupères la valeur de STATE que pour n=10

Hors ligne