我正在尝试调试一些使用 SNMP 的监控代码,但遇到了一个问题。
如果我snmpwalk -v 1 -c $COMMUNITY $SERVER hrSystemDate.0
在 Windows 2003/2008/2008R2 机器上运行,我会得到类似的输出
HOST-RESOURCES-MIB::hrSystemDate.0 = STRING: 2012-2-16,16:30:21.1
但在 Linux 机器(debian)上进行同样的检查,结果却不是这样。
HOST-RESOURCES-MIB::hrSystemDate.0 = STRING: 2012-2-16,16:31:23.0,+11:0
Windows 版本缺少时区。
这是 Microsoft 已知/记录的限制吗?或者还有其他方法可以自行获取时区吗?
答案1
据我所知,它根本不在 SNMP 中。但是,如果您具有 SMB 访问权限并在管理站上安装了 Samba,则可以执行以下操作:
net time zone -S $SERVER
答案2
我已经算出他的答案了。
除了使用 SNMP 步行之外,我可以使用内部脚本(nagios/nsclient 的一部分)来运行:
w32tm /monitor /computer:mytimeserver.com
这给出了一个考虑时区变化的偏移值(当从 +10 变为 +11 时,偏移在合理范围内,但如果小时变化 +1,则偏移会中断)