我正在尝试使用 tcl 命令从具有 OID 的实例中获取值。
在 TCL 中,该命令有效:
% set snmp_result [snmpwalk -Os -c public -v 2c 192.168.1.20 .1.3.6.1.4.1.31926.2.1.1.19]
iso.3.6.1.4.1.31926.2.1.1.19.1 = INTEGER: -57
我试图只得到数字 -57,所以我写了一个 tclsh 脚本:
set snmp_result [snmpwalk -Os -c public -v 2c 192.168.1.20 .1.3.6.1.4.1.31926.2.1.1.19]
set splitted_result [split $snmp_result ""]
puts [lindex $splitted_result 3]
然后我得到了错误:
无效的命令名称“snmpwalk” 在执行时 “snmpwalk -Os -c 公共 -v 2c 192.168.1.20 .1.3.6.1.4.1.31926.2.1.1.19” 从内部调用 “数组集 snmp_result [snmpwalk -Os -c public -v 2c 192.168.1.20 .1.3.6.1.4.1.31926.2.1.1.19]” (文件“./siklu.tcl”第 1 行)
我还了解到 tclsh 是 EEM 策略,所以我尝试了:
array set snmp_res [sys_reqinfo_snmp -c public -v 2c 192.168.1.20 oid .1.3.6.1.4.1.31926.2.1.1.19 get_type exact]
但这给了我这个错误:
无效的命令名称“sys_reqinfo_snmp” 在执行时 “sys_reqinfo_snmp -c public -v 2c 192.168.1.20 oid .1.3.6.1.4.1.31926.2.1.1.19 get_type 准确” 从内部调用 “数组集 snmp_res [sys_reqinfo_snmp -c public -v 2c 192.168.1.20 oid .1.3.6.1.4.1.31926.2.1.1.19 get_type axact]” (文件“./siklu.tcl”第 2 行)