ce ne sont pas des crochets, mais des parenthèses.
mais ça ne va pas, normalement c'est : (( <valeur_départ> ; <valeur_fin> ; <incrémentation> )).
pourquoi ne pas itérer directement sur les éléments du tableau : for i in "${tab[@]}"
en allant plus loin, pourquoi ne pas faire la boucle dans le premier if :
tab=(
'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'
'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'
'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'
)
if [[ $4 = status && $6 -eq 1 ]]
then
for i in "${!tab[@]}"
do
ar[$n]=( "$($PLUGIN_PATH/check_snmp -H $2 -C X -o 1.3.6.1.4.1.7652.1.1.1.6.32."${tab[i]}" | grep to | cut -d '-' -f 2 | cut -d '"' -f 2 | cut -c -2)" ) # il va falloir remédier à tous ces cut
test "${ar[n]}" = "Up" && State=0 || State=2
((n++))
done
echo "PRODUCTION_01 est $ar & PRODUCTION_02 est ${ar[1]} & PRODUCTION_03 est ..."
fi
ton script est très brouillon, je ne suis pas certain de l'avoir bien compris.
ton if posera aussi problème : il faut des espaces autour des double-crochets.
- Edité par dantonq 22 février 2017 à 15:30:40
Validez la réponse utile « Un problème clairement exposé est à moitié résolu. » Pas de MP technique
ce ne sont pas des crochets, mais des parenthèses.
mais ça ne va pas, normalement c'est : (( <valeur_départ> ; <valeur_fin> ; <incrémentation> )).
pourquoi ne pas itérer directement sur les éléments du tableau : for i in "${tab[@]}"
en allant plus loin, pourquoi ne pas faire la boucle dans le premier if :
tab=(
'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'
'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'
'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'
)
if [[ $4 = status && $6 -eq 1 ]]
then
for i in "${!tab[@]}"
do
ar[$n]=( "$($PLUGIN_PATH/check_snmp -H $2 -C X -o 1.3.6.1.4.1.7652.1.1.1.6.32."${tab[i]}" | grep to | cut -d '-' -f 2 | cut -d '"' -f 2 | cut -c -2)" ) # il va falloir remédier à tous ces cut
test "${ar[n]}" = "Up" && State=0 || State=2
((n++))
done
echo "PRODUCTION_01 est $ar & PRODUCTION_02 est ${ar[1]} & PRODUCTION_03 est ..."
fi
ton script est très brouillon, je ne suis pas certain de l'avoir bien compris.
ton if posera aussi problème : il faut des espaces autour des double-crochets.
- Edité par dantonq il y a 18 minutes
Hello,
Je vais testé cela, désolé je débute dans les scripts :/
Voici mon nouveau script :
#! /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'
)
if [[ $4 = status && $6 -eq 1 || $6 -eq 2 ]]
then
for ((n=0; n < 3; n++))
do
ar+=( "$($PLUGIN_PATH/check_snmp -H $2 -C X -o 1.3.6.1.4.1.7652.1.1.1.6"${tab[@]}" | grep to | cut -d '-' -f 2 | cut -d '"' -f 2 | cut -c -2)" )
test "${ar[$n]}" = "Up" && State=0 || State=2
done
rslt_affiche="PRODUCTION_01 est $ar PRODUCTION_02 est ${ar[1]} PRODUCTION_03 est ${ar[2]}"
fi
if [[ ($4 == status) ]] ; then #affichage sur le nagios
$PLUGIN_PATH/check_dummy $STATE "$rslt_affiche"
fi
exit $STATE
erreur :
CRITIQUE: PRODUCTION_01 est Up PRODUCTION_02 est Up PRODUCTION_03 est Up
mais par quelle magie `STATE=2' s'est-il transformé en `CRITIQUE:' ?
Validez la réponse utile « Un problème clairement exposé est à moitié résolu. » Pas de MP technique
Script shell - boucle
× Après avoir cliqué sur "Répondre" vous serez invité à vous connecter pour que votre message soit publié.
× Attention, ce sujet est très ancien. Le déterrer n'est pas forcément approprié. Nous te conseillons de créer un nouveau sujet pour poser ta question.
Validez la réponse utile « Un problème clairement exposé est à moitié résolu. » Pas de MP technique
Validez la réponse utile « Un problème clairement exposé est à moitié résolu. » Pas de MP technique