免费注册 查看新帖 |

Chinaunix

  平台 论坛 博客 文库
最近访问板块 发新帖
查看: 1561 | 回复: 6
打印 上一主题 下一主题

[网络相关] snmpwalk验证设备的结果没有正确记录到文件 [复制链接]

论坛徽章:
0
跳转到指定楼层
1 [收藏(0)] [报告]
发表于 2016-05-04 15:40 |只看该作者 |倒序浏览
写了个脚本,读取ip_list.txt文件中的设备ip,并通过snmpwalk对所读取到的IP进行验证。如果设备能获取到相应信息(出现Timeticks的信息),就将IP地址及相应描述结果输出到指定文件内;如果无法获取到相应信息(Timeout),将结果保存到另一指定文件。
问题:发现设备通过snmpwalk v1或snmpwalk v2c都能poll通,但是并不向snmpwalk_v1_v2c_SysUpTime.txt,snmpwalk_v1_SysUpTime.txt,snmpwalk_v2c_SysUpTime.txt这3个文件写日志。
不知道啥原因,请高手指点!
下面是snmpwalk_test.sh脚本内容:
#!/bin/bash
##########################  SNMPWALK DEVICE TEST  ###########################
IPLIST=$(cat ./ip_list.txt | sed 's/\t/:/g' )

echo "####IP####                仅能被v2c版本验证                #######sysDescr#######" >> snmpwalk_v2c_SysUpTime.txt
echo "####IP####                仅能被v1版本验证                #######sysDescr#######" >> snmpwalk_v1_SysUpTime.txt
echo "####IP####                能同时被v1和v2c验证                #######sysDescr#######" >> snmpwalk_v1_v2c_SysUpTime.txt
echo "####IP####                既不能被v1验证,也不能被v2c验证        #######sysDescr#######" >> snmpwalk_no_SysUpTime.txt
echo "Running..........Please wait!"

for line in $IPLIST
do
        ip=$(echo $line | awk -F':' '{print $1}')
        community=$(echo $line | awk -F':' '{print $2}')
        if [ -z "$community" ] ; then
                echo "$ip的community值(-c 参数值)为空!!!!snmpwalk执行失败!!!!"
                continue
        fi
        COMMAND1="snmpwalk -v1 -c $community $ip SysUptime 1>/dev/null 2>&1 &"
        COMMAND2c="snmpwalk -v2c -c $community $ip SysUptime 1>/dev/null 2>&1 &"
        str1=$($COMMAND1)
        if [ "$?" -eq 0 ]
        then
                str2c=$($COMMAND2c)
                if [ "$?" -eq 0 ]
                then
                        echo "$ip                                $str1" >> snmpwalk_v1_v2c_SysUpTime.txt
                        echo "$ip                                $str2c" >> snmpwalk_v1_v2c_SysUpTime.txt
                else
                        echo "$ip                                $str1" >> snmpwalk_v1_SysUpTime.txt
                fi
        else
                str2c=$($COMMAND2c)
                if [ "$?" -eq 0 ]
                then
                        echo "$ip                                $str2c" >> snmpwalk_v2c_SysUpTime.txt
                else
                        echo "$ip                                $str2c" >> snmpwalk_no_SysUpTime.txt
                fi
        fi
       
done

ip_list.txt文件的内容如下:
#IP地址   Community
192.168.1.1 public1
192.168.1.2 public2
192.168.2.1 public3
ip_list.txt文件的列用TAB键隔开。
在测试中发现,
(1)snmpwalk -v2c -c public1 192.168.1.1 SysUpTime
Timeout: No Response from 11.158.27.100
这台设备snmpwalk不通,可以正常写入到snmpwalk_no_SysUpTime.txt文件中。
(2)执行snmpwalk -v2c -c public1 192.168.2.1 SysUptime的命令是可以返回结果的
snmpwalk -v2c -c  public1 192.168.2.1 SysUpTime
DISMAN-EVENT-MIB::sysUpTimeInstance = Timeticks: (3064858184) 354 days, 17:29:41.84
但是能poll通的设备IP并不记录到snmpwalk_v2c_SysUpTime.txt文件中。


求职 : 技术支持/维
论坛徽章:
0
2 [报告]
发表于 2016-05-04 16:03 |只看该作者
提示: 作者被禁止或删除 内容自动屏蔽

求职 : 技术支持/维
论坛徽章:
0
3 [报告]
发表于 2016-05-04 16:03 |只看该作者
提示: 作者被禁止或删除 内容自动屏蔽

求职 : 技术支持/维
论坛徽章:
0
4 [报告]
发表于 2016-05-04 16:03 |只看该作者
提示: 作者被禁止或删除 内容自动屏蔽

求职 : 技术支持/维
论坛徽章:
0
5 [报告]
发表于 2016-05-04 16:04 |只看该作者
提示: 作者被禁止或删除 内容自动屏蔽

论坛徽章:
0
6 [报告]
发表于 2016-05-04 23:12 |只看该作者
试了下ping,发现不管是否能够ping通都返回的是0.
可能snmpwalk不管是成功还是失败$?都返回的是0.

另外以 "$($COMMAND1)" 的形式调用的时候,当COMMAND1中含有以空格分割的多个字符串时,bash是会自动给除了第一个字符串之外的其他字符串加上单引号的。
可以用sh -x测试一下真正执行的命令是什么样子的。

论坛徽章:
0
7 [报告]
发表于 2016-05-05 10:48 |只看该作者
执行snmpwalk都会返回结果,
(1)如果设备可以snmpwalk通,执行snmpwalk -v2c -c public1 192.168.2.1 SysUptime 返回如下结果:
snmpwalk -v2c -c  public1 192.168.2.1 SysUpTime
DISMAN-EVENT-MIB::sysUpTimeInstance = Timeticks: (3064858184) 354 days, 17:29:41.84
注释:设备运行了354天。

(2)如果设备snmpwalk不通(即无法获取到设备运行时间),snmpwalk -v2c -c public1 192.168.1.1 SysUpTime 返回如下结果:
Timeout: No Response from 11.158.27.100
注释:设备没有响应。

lll1985911 发表于 2016-05-04 23:12
试了下ping,发现不管是否能够ping通都返回的是0.
可能snmpwalk不管是成功还是失败$?都返回的是0.
您需要登录后才可以回帖 登录 | 注册

本版积分规则 发表回复

  

北京盛拓优讯信息技术有限公司. 版权所有 京ICP备16024965号-6 北京市公安局海淀分局网监中心备案编号:11010802020122 niuxiaotong@pcpop.com 17352615567
未成年举报专区
中国互联网协会会员  联系我们:huangweiwei@itpub.net
感谢所有关心和支持过ChinaUnix的朋友们 转载本站内容请注明原作者名及出处

清除 Cookies - ChinaUnix - Archiver - WAP - TOP