超时作为条件

时间:2016-11-03 16:56:24

标签: bash snmp

我正在尝试使用bash脚本轮询一组具有多个SNMP社区字符串的设备。目标是如果snmpwalk超时它会尝试另一个字符串,但我的情况是错误的。

Derived::f

1 个答案:

答案 0 :(得分:0)

我使用-z计算了它并添加了timeout -s KILL 2,因为它需要很长时间。

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