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

如何使用snmpset在MIB表中添加行?,snmp,net-snmp,mib,Snmp,Net Snmp,Mib,我最近更改了我的自定义MIB文件,使其不仅包括表,还包括标量、验证、我可以创建子代理等。但如果我尝试读取它,它会显示没有条目: snmptable -v1 -c public hostname:10161 myMibName::myTable myMibName::myTable: No entries 嗯,在代理代码中,我没有向该表添加任何默认/示例行 若我尝试使用snmpset设置表的一些值,就像我在标量上所做的那个样,那个么它总是失败,所以表需要它自己的语法 如何使用snmpset或类似

我最近更改了我的自定义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 agent,它用一些数据填充示例表,并可以使用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"
snmpwalk -v 1 -c public hostname:10161 yourMibName::myTable
假设表(
myTable
)包含一个字符串(
stringIndex
)和两个整数(
test1
test2
),而第一个表列也是表索引,则可以添加具有以下内容的行:

snmpset-v1-c公共主机名:10161 yourMibName::test1.\“testString\”=365

这将添加一个新表行,其中

stringIndex = "testString"
test1 = 365
test2 = 0
要将test2设置为42,您需要调用:

snmpset-v1-c公共主机名:10161 yourMibName::test2.\“testString\”=42

要验证表内容,可以使用snmpwalk或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"
snmpwalk -v 1 -c public hostname:10161 yourMibName::myTable

我使用的是net::snmp附带的snmpset,它似乎不接受上述语法(=值),而是接受(type value),并且似乎需要分别设置每个列。这个答案指的是哪个snmpset?Linux上的NetSNP5.7.3,自编译自源代码。根据我的经验,windows上的netsnmp不遵循其自己的手册页,并且以一种奇怪的、无法解释的方式运行。谢谢。我在mac电脑上,使用一个Docker镜像,声称安装了NET-SNMP版本:5.5。也许我需要试试更晚的版本。