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)