- 论坛徽章:
- 0
|
写了个脚本,读取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文件中。
|
|