Interprétation des reponses par shell

Résolu/Fermé
yannosh001 - 21 déc. 2007 à 15:37
 yannosh001 - 21 déc. 2007 à 16:12
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
A voir également:

3 réponses

jipicy Messages postés 40842 Date d'inscription jeudi 28 août 2003 Statut Modérateur Dernière intervention 10 août 2020 4 897
21 déc. 2007 à 15:44
Salut,

Si la sortie des commandes SNMP est envoyée dans un fichier :
compteurUP=$(grep -c "up$" fichier)
;-))

0
dubcek Messages postés 18767 Date d'inscription lundi 15 janvier 2007 Statut Contributeur Dernière intervention 5 mars 2025 5 628
21 déc. 2007 à 15:49
Par ex. avec awk:
awk 'BEGIN {up=0;down=0} ; $NF ~ /up/ {up++} ; $NF ~ /down/ {down++} ; END {print "UP " up " DOWN " down }'
0
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
0