2016-11-03 4 views
0

Ich versuche, eine Gruppe von Geräten mit mehreren SNMP-Community-Strings mit einem Bash-Skript abzufragen. Das Ziel ist, dass wenn der snmpwalk abläuft, es eine andere Zeichenfolge versucht, aber mein Zustand ist fehlerhaft.Timeout als Bedingung

while read line 
     do 
       ip="$line" 
       device=$(/usr/bin/snmpwalk -v 2c -c string1 $ip 1.3.6.1.2.1.1.1) 
       if [ $device = false ] 
         then 
         device=$(/usr/bin/snmpwalk -v 2c -c string2 $ip 1.3.6.1.2.1.1.1) 
         if [ $device = false ] 
           then 
           device=$(/usr/bin/snmpwalk -v 2c -c string3 $ip 1.3.6.1.2.1.1.1) 
           break 
         fi 
       fi 
       echo "$ip $device" 
     done < ip-list > device-type 

Antwort

0

ich es herausgefunden timeout -s KILL 2 mit -z und hinzugefügt, weil es so lange dauert.

while read line 
    do 
     ip="$line" 
     device=$(timeout -s KILL 2 /usr/bin/snmpwalk -v 2c -c string1 $ip 1.3.6.1.2.1.1.1) 
      if [ -z "$device" ] 
         then 
         device=$(timeout -s KILL 2 /usr/bin/snmpwalk -v 2c -c string2 $ip 1.3.6.1.2.1.1.1) 
         if [ -z "$device" ] 
           then 
           device=$(timeout -s KILL 2 /usr/bin/snmpwalk -v 2c -c string3 $ip 1.3.6.1.2.1.1.1) 
           if [ -z "$device" ] 
             then 
             device=$(echo " Not my problem ") 
           fi 
         fi 
       fi 
    echo "$ip $device" 
    done < ip-list > device-list 
Verwandte Themen