WEB开发网
开发学院软件开发Python 使用 Net-SNMP 和 IPython 阅读

使用 Net-SNMP 和 IPython

 2008-09-30 12:45:39 来源:WEB开发网   
核心提示: 使用 IPython 来测试 SNMP 代码片段的好处之一是,它就好像是一个普通的 Shell,使用 Net-SNMP 和 IPython(4),并且许多基本的、交互式 Shell 的概念“都可以起作用”,但需要说明的是,让我们使用 IPython 中的编辑功能来编

使用 IPython 来测试 SNMP 代码片段的好处之一是,它就好像是一个普通的 Shell,并且许多基本的、交互式 Shell 的概念“都可以起作用”,但需要说明的是,它们是以 python 方式进行工作的。编写 SNMP 代码可能是一项非常单调乏味的活动,但是通过 IPython 来使用 Net-SNMP 库将使其变得非常有趣。

正如您所看到的,要将结果转换为 Python 数据类型,这项任务是非常简单的。这就是为什么 IPython 和 Net-SNMP 可以很好地在一起工作的原因。现在,对于编写自定义脚本来说,只需要以交互方式分析 OID 的组合以进行查询。在理想的情况下,需要运行一个大规模的、易于配置的 NMS 设置脚本,自动地将新的计算机集成到网络中。

当然,并不存在这种理想的情况,您需要了解如何将一些好的 SNMP 代码组合到一起,对于一名系统管理员来说,这是非常有用的。下面给出一个示例情况,假设您刚刚将一个高速 DDR 转换为正在运行 Ubuntu Linux 的 2 TB RAID 0 服务器,因为您必须在一个小时的时间内解决问题,所以您不得不这样做。

现在,您遇到了很大的麻烦,并且您只有几分钟的时间来监视具体的问题,以了解是否需要开始发送简历、或者是否应该开始准备讲话并请求升职。让我们使用 IPython 中的编辑功能来编写脚本,并将它保存到文件中,然后在不离开 IPython 的情况下,在一个会话中运行它: ed snmpinput.py

清单 2. IPython 模块的创建

import netsnmp
class snmpSessionBaseClass(object):
  """A Base Class For a SNMP Session"""
  def __init__(self,
        oid="sysDescr",
        Version=2,
        DestHost="localhost",
        Community="public"):
    self.oid = oid
    self.Version = Version
    self.DestHost = DestHost
    self.Community = Community
  def query(self):
    """Creates SNMP query session"""
    try:
      result = netsnmp.snmpwalk(self.oid,
                  Version = self.Version,
                  DestHost = self.DestHost,
                  Community = self.Community)
    except:
      import sys
      print sys.exc_info()
      result = None
    return result

上一页  1 2 3 4 5 6 7 8 9  下一页

Tags:使用 Net SNMP

编辑录入:爽爽 [复制链接] [打 印]
赞助商链接