如何使用snmpset在MIB表中添加行?

时间:2015-09-24 08:16:20

标签: snmp net-snmp mib

我最近更改了我的自定义MIB文件以包含表格,不仅包括标量,它还有效,我可以创建子代理等。但如果我尝试阅读它,则表示没有条目:

snmptable -v1 -c public hostname:10161 myMibName::myTable
myMibName::myTable: No entries

好吧,我没有在我的座席代码中向该表添加任何默认/示例行。

如果我尝试使用snmpset设置表的某些值,就像我在标量上设置的那样,它总是会失败,因此表需要自己的语法。

如何使用snmpset或类似方法向表中添加行?

例如,样本表可能看起来像这个简单,其中' myString'是索引:

MyTableEntrySequence::= SEQUENCE {
myString
OCTET STRING,
test1
Integer32,
test2
Integer32

}

编辑:我没有在表格中使用RowStatus。我是否需要使用RowStatus来添加新行?

EDIT2:我已经从net-snmp示例编译了data_set.c代理,它使用一些数据填充示例表,并可以使用snmptable查询其内容:

snmpwalk -v 1 -c public hostname:10161 netSnmpIETFWGTable
NET-SNMP-EXAMPLES-MIB::nsIETFWGChair1."snmpv3" = STRING: "Russ Mundy"
NET-SNMP-EXAMPLES-MIB::nsIETFWGChair2."snmpv3" = STRING: "David Harrington"

1 个答案:

答案 0 :(得分:2)

假设,表(myTable)包含一个字符串(stringIndex)和2个整数(test1test2),而第一个表列也是表索引,您可以添加以下行:

snmpset -v 1 -c public hostname:10161 yourMibName::test1.\"testString\" = 365

这会添加一个新的表格行,其中

stringIndex = "testString"
test1 = 365
test2 = 0

要将test2设置为42,您需要调用:

snmpset -v 1 -c public hostname:10161 yourMibName::test2.\"testString\" = 42

要验证您的表格内容,您可以使用snmpwalk或snmptable:

snmpwalk -v 1 -c public hostname:10161 yourMibName::myTable