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 :
==> Cette commande me permet de connaitre le nombre d'élément que je dois superviser (nombre variable)
Code : Sélectionner tout - Visualiser dans une fenêtre à part 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}')
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.
Code : Sélectionner tout - Visualiser dans une fenêtre à part
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}')
Voici le débug pour y voir plus clair :
En définitive ce que j'aimerais c'est que pour chacun de mes éléments (1001,2001,etc...) lui associer sa valeur.
Code : Sélectionner tout - Visualiser dans une fenêtre à part
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
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,
Partager