工作中用到很多Linux与windows结合的环境,逐渐习惯在linux下用snmpwalk或随snmpget来查询或者管理一些windows服务器,但是今天又发现了个奇怪的现象:

 windows机器众所周知使用时间长了会出现很多莫名其妙的问题,所以赶在例行停机维护的时候重启一下,重启之后查询系统启动时间时原本一直用systeminfo,但是这样太浪费时间,遂想到了这条命令snmpwalk -v1 -c community host sysUpTime.0,但使用中发现两条问题如下:

1.sysUpTime与hrSystemUptime的区别

http://net-snmp.sourceforge.net/docs/FAQ.html#The_system_uptime__sysUpTime__returned_is_wrong_

官方的解释如上,大意就是sysUpTime所显示的时间是snmp服务最后一次启动距现在多久,而hrSystemUptime显示的时间才是系统正常运行的时间,还好我的系统snmp服务是开机启动,一般不会手动重启这个服务,所以用sysUpTime也勉强能达到效果,但是用hrSystemUptime的时候发现它显示的时间跟系统真正运行的时间systeminfo里看到的,有很大区别,不知道为什么,难道是上一次系统有错误日志的时间?

2.部分服务器snmpwalk报错

之前一直用的是 snmpwalk -v1 -c community host | grep sysUpTime,但是这条命令在部分服务器上运行就会报错,内容如下:

HOST-RESOURCES-MIB::hrSystemInitialLoadParameters.0 = ""
Error in packet.
Reason: (genError) A general failure occured
Failed object: HOST-RESOURCES-MIB::hrSystemInitialLoadParameters.0
 

上网搜了半天也没有好的解决方法,跟其它服务器的配置也比较过,看不出异常,头疼。。。。