[Bash] Stocker un résultat dans plusieurs variable
Bonjour à tous,
Je fais un petit script pour connecter l'état de mes équipements, sauf que je bloque pour traiter la donnée.
Voici ce que je fais :
Code:
ID=$(snmpwalk -c $1 -v $2 $3 1.3.6.1.4.1.9.9.500.1.2.1.1.6 | awk -F "." '{print $NF}' | awk '{print $1}')
==> Cette commande me permet de connaitre le nombre d'élément que je dois superviser (nombre variable)
Code:
1 2 3 4
| for element in $ID
do
res=$(snmpwalk -c $1 -v $2 $3 1.3.6.1.4.1.9.9.500.1.2.1.1.6.$element)
valeur=$(echo $res | awk '{print $NF}') |
Et c'est la mon problème car le résultat est traité dans sa globalité, or j'aimerais pouvoir récupérer la sortie pour chacun de mes éléments.
Voici le débug pour y voir plus clair :
Code:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38
| ++ snmpwalk -c snmpget -v 2c 10.254.22.254 1.3.6.1.4.1.9.9.500.1.2.1.1.6
++ awk -F . '{print $NF}'
++ awk '{print $1}'
+ ID='1001
2001
3001
4001'
+ for element in '$ID'
++ snmpwalk -c X -v X X.X.X.X 1.3.6.1.4.1.9.9.500.1.2.1.1.6.1001
+ res='RFC1155-SMI::enterprises.9.9.500.1.2.1.1.6.1001 = INTEGER: 4'
++ echo RFC1155-SMI::enterprises.9.9.500.1.2.1.1.6.1001 = INTEGER: 4
++ awk '{print $NF}'
+ valeur=4
+ echo 4
4
+ for element in '$ID'
++ snmpwalk -c X -v X X.X.X.X 1.3.6.1.4.1.9.9.500.1.2.1.1.6.2001
+ res='RFC1155-SMI::enterprises.9.9.500.1.2.1.1.6.2001 = INTEGER: 4'
++ echo RFC1155-SMI::enterprises.9.9.500.1.2.1.1.6.2001 = INTEGER: 4
++ awk '{print $NF}'
+ valeur=4
+ echo 4
4
+ for element in '$ID'
++ snmpwalk -c X -v X X.X.X.X 1.3.6.1.4.1.9.9.500.1.2.1.1.6.3001
+ res='RFC1155-SMI::enterprises.9.9.500.1.2.1.1.6.3001 = INTEGER: 4'
++ echo RFC1155-SMI::enterprises.9.9.500.1.2.1.1.6.3001 = INTEGER: 4
++ awk '{print $NF}'
+ valeur=4
+ echo 4
4
+ for element in '$ID'
++ snmpwalk -c X -v X X.X.X.X 1.3.6.1.4.1.9.9.500.1.2.1.1.6.4001
+ res='RFC1155-SMI::enterprises.9.9.500.1.2.1.1.6.4001 = INTEGER: 4'
++ echo RFC1155-SMI::enterprises.9.9.500.1.2.1.1.6.4001 = INTEGER: 4
++ awk '{print $NF}'
+ valeur=4
+ echo 4 |
En définitive ce que j'aimerais c'est que pour chacun de mes éléments (1001,2001,etc...) lui associer sa valeur.
Dois-je forcement passer par un tableau ?
Pour vous donner un idée, l'objectif du script est de remonter une alerte si un des éléments n'est pas égal au chiffre 4.
Merci par avance,