首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
社区首页 >问答首页 >如何使用pysnmp删除没有"RowStatus“字段的SNMP条目?

如何使用pysnmp删除没有"RowStatus“字段的SNMP条目?
EN

Stack Overflow用户
提问于 2016-10-25 09:06:37
回答 2查看 803关注 0票数 0

我想知道那些没有"RowStatus“字段的SNMP。如何删除具有给定索引的条目?

表项是由

代码语言:javascript
运行
AI代码解释
复制
self.snmp_context.getMibInstrum().writeVars()

但是我没有找到任何可以用来删除条目的方法吗?伊利亚·伊丁科夫能给点提示吗?

Br,-Dapeng Jiao

EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2016-10-25 09:48:09

如果您阅读SNMP,您会发现,只有当表定义了EntryStatus列(如果是SMIv1表)或定义了RowStatus列(如果是SMIv2表),才有可能添加或删除操作。

带有的EntryStatus SMIv1表

EntryStatus列用于管理SMIv1表中概念性行的创建和删除。这表示表项的状态。status列可以具有以下内容。

  • valid(1) --表示该行存在并可供使用。
  • createRequest(2) -由希望创建行的管理器提供。
  • underCreation(3) --指示正在创建行。
  • invalid(4) -由希望使相应条目无效的经理提供。

如果管理器希望添加一行,则应将entryStatus列设置为createRequest(2)。在创建之后,代理立即将此对象设置为underCreation(3)。在配置好条目之前,该条目一直处于underCreation(3)状态。然后将其值设置为valid(1)。如果状态在异常长时间内保持为underCreation(3),则代理将状态设置为invalid(4)

带有的RowStatus SMIv2表

在SMIv2表中,RowStatus列用于管理概念行的创建和删除。该列有6个定义的值,如下所示。

  • active(1) --指示所有列的概念性行可供托管设备使用。
  • notInService(2) --表示代理中存在概念性行,但托管设备无法使用。
  • notReady(3) --表示代理中存在概念性行,行中的一个或多个必需列没有实例化。
  • createAndGo(4) --由希望创建概念行的新实例并使其可供使用的管理器提供。
  • createAndWait(5) --由希望创建概念行的新实例但不允许使用的管理器提供。
  • destroy(6) -由希望删除与现有概念行关联的所有实例的管理器提供。

有些SNMP代理确实实现了添加/删除行的非标准机制。因此,在这种情况下,它是特定于实现的。但一般来说,如果没有EntryStatus/RowStatus,您就无法做到这一点。

票数 0
EN

Stack Overflow用户

发布于 2016-10-26 05:45:34

对于pysnmp,所有对SNMP代理的更改都是通过.writeVars()调用完成的。它的设计方式是将代码重用到代理端和管理器启动的操作中。因此,修改的细节由传递给调用的OID-值对决定。

正如@andrew所说,删除SNMP表行的方法是将RowStatus列的值设置为destroy(6) (或destroy(6))。如果您的表不支持RowStatus,我想最小的干扰方式就是将其添加到ASN.1或Python中。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/40245764

复制
相关文章

相似问题

领券
社区富文本编辑器全新改版!诚邀体验~
全新交互,全新视觉,新增快捷键、悬浮工具栏、高亮块等功能并同时优化现有功能,全面提升创作效率和体验
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档
查看详情【社区公告】 技术创作特训营有奖征文