Interprétation des reponses par shell
Résolu
yannosh001
-
yannosh001 -
yannosh001 -
Bonjour,
j'ai un script shell qui exécute des commandes SNMP pour connaitre si les ports d'un switch sont occupés ou non, ce qui m'est renvoyé ressemble à cela :
interfaces.ifTable.ifEntry.ifOperStatus.100 : INTEGER: up
interfaces.ifTable.ifEntry.ifOperStatus.1025 : INTEGER: up
interfaces.ifTable.ifEntry.ifOperStatus.1026 : INTEGER: down
interfaces.ifTable.ifEntry.ifOperStatus.1027 : INTEGER: up
interfaces.ifTable.ifEntry.ifOperStatus.1028 : INTEGER: down
interfaces.ifTable.ifEntry.ifOperStatus.1029 : INTEGER: down
interfaces.ifTable.ifEntry.ifOperStatus.1030 : INTEGER: down
interfaces.ifTable.ifEntry.ifOperStatus.1031 : INTEGER: up
interfaces.ifTable.ifEntry.ifOperStatus.1032 : INTEGER: down
interfaces.ifTable.ifEntry.ifOperStatus.1033 : INTEGER: down
comment je pourrais faire pour que mon script compte les "up" et qu'a la fin il me les donne par exemple par
echo Le switch "$nomduswitch" a "$compteurUP" ports d'utilisés
j'ai un script shell qui exécute des commandes SNMP pour connaitre si les ports d'un switch sont occupés ou non, ce qui m'est renvoyé ressemble à cela :
interfaces.ifTable.ifEntry.ifOperStatus.100 : INTEGER: up
interfaces.ifTable.ifEntry.ifOperStatus.1025 : INTEGER: up
interfaces.ifTable.ifEntry.ifOperStatus.1026 : INTEGER: down
interfaces.ifTable.ifEntry.ifOperStatus.1027 : INTEGER: up
interfaces.ifTable.ifEntry.ifOperStatus.1028 : INTEGER: down
interfaces.ifTable.ifEntry.ifOperStatus.1029 : INTEGER: down
interfaces.ifTable.ifEntry.ifOperStatus.1030 : INTEGER: down
interfaces.ifTable.ifEntry.ifOperStatus.1031 : INTEGER: up
interfaces.ifTable.ifEntry.ifOperStatus.1032 : INTEGER: down
interfaces.ifTable.ifEntry.ifOperStatus.1033 : INTEGER: down
comment je pourrais faire pour que mon script compte les "up" et qu'a la fin il me les donne par exemple par
echo Le switch "$nomduswitch" a "$compteurUP" ports d'utilisés
3 réponses
-
Salut,
Si la sortie des commandes SNMP est envoyée dans un fichier :compteurUP=$(grep -c "up$" fichier)
;-))
-
Par ex. avec awk:
awk 'BEGIN {up=0;down=0} ; $NF ~ /up/ {up++} ; $NF ~ /down/ {down++} ; END {print "UP " up " DOWN " down }' -
Merci beaucoup, ça m'a bien aidé, mais en fait j'ai fait plus simple :
#!/bin/sh
SNMPWALK="snmpwalk -v1 -c public"
COMPTEURuP=` $SNMPWALK "$1" interfaces.ifTable.ifEntry.ifOperStatus | grep -c ": up"`
echo "$1" = "$COMPTEURuP" ports UP