0

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 public -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)
4

1 に答える 1

0

execそれらを実行するにはコマンドを使用する必要があります。

set snmp_result [exec snmpwalk -Os -c public -v 2c 192.168.1.20 .1.3.6.1.4.1.31926.2.1.1.19]
puts $snmp_result
于 2016-02-14T01:22:55.817 に答える