Interprétation des reponses par shell

Résolu
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

3 réponses

  1. 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
    1. Contributeur
      Par ex. avec awk:
      awk 'BEGIN {up=0;down=0} ; $NF ~ /up/ {up++} ; $NF ~ /down/ {down++} ; END {print "UP " up " DOWN " down }'
      1. Modérateur
        Salut,

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