clsnmp 命令
用途
AIX® clsnmp 命令提供来自 AIX shell 的 SNMP 管理器函数,用于查询 SNMP 代理程序以获取网络管理信息。
语法
clsnmp [-d DebugLevel] [-h TargetHost] [-c Community] [-t TimeOutValue] [-r RetryNumber] [-n NonRepeaters] [-m MaxRepetitions] [-p PortNumber] [-v] [-f ConfigurationFile] [-?]Function[MIBVariable[VariableType] [Value] [ ... ] )
描述
使用 clsnmp 命令对代理程序发出 SNMP 请求并处理由代理程序返回的 SNMP 响应。 AIX clsnmp 命令支持发出 SNMPv1, SNMPv2c和 SNMPv3 请求。
SNMP 请求类型
- findname
- 发送请求,进行搜索以获取文本名称(对于给定的 MIBVariable 输入),其内部 ASN.1 值与输入 ASN.1 值最佳匹配。 搜索首先检查 /etc/mib.defs 文件,如果找不到匹配的文本名称,那么继续检查编译的 MIB。 每个 clsnmp findname 调用仅允许一个 MIBVariable 。
- get
- 向 SNMP 代理程序发送请求,以获取特定的管理信息库(MIB)变量。 然后 clsnmp 等待响应或超时。
- getbulk
- 获取由 OID 或 MIB 变量名指定的 MIB 树中的变量值。 单一的 getbulk 与使用 clsnmp 命令和 SNMP 代理程序之间进行少量数据交换的一系列 getnext 执行相同的功能。
- getnext
- 向 SNMP 代理程序发送请求,以获取按词典排序的跟在指定的 MIBVariable 后的 MIB 变量。 然后 clsnmp 等待响应或超时。
- set
- 向 SNMP 代理程序发送请求以获取特定的 MIB 变量。 然后 clsnmp 等待响应或超时。
- trap
- 侦听 SNMP 陷阱,并在其出现时显示 trap 信息。 使用缺省值,熟知端口 162 或 -p 选项指定的端口号。 clsnmp trap 功能继续侦听陷阱,直到进程被杀死或取消。
- walk
- 对指定的前缀发出 getnext 请求,然后只要有匹配指定的前缀的变量就继续发出 getnext 请求。 前缀可以是完整的对象标识的前导部分。
用途
set 操作并非在所有 MIB 对象上受支持。 如果管理 MIB 对象的代理程序或子代理程序不支持 SET,那么可能拒绝 set 操作。
getbulk 是一个 SNMPv2 功能。 如果目标代理程序只支持 SNMPv1,那么目标代理程序忽略您的请求。 结果,请求超时。
功能关键字不区分大小写。 标志、变量名和值区分大小写。
要同时监听来自NetViewSNMP 和AIX clsnmp的陷阱,请在clsnmp命令中使用-p PortNumber参数。 在一个 IP 地址上一次只能有一个管理应用程序可以在一个端口上侦听。 在 clsnmp 陷阱命令上指定 -p 启用要使用的除熟知端口 162 以外的端口。 这两个端口都必须配置为代理程序陷阱目标。
未认证(通过使用可接受的共用名或用户名)的 clsnmp 命令将超时。
clsnmp 命令使用两个配置文件:/etc/mib.defs 和 clsnmp.conf。 样本文件在 /usr/samples/snmpdv3 目录中提供。
clsnmp 命令支持发送 SNMPv1、SNMPv2c 和 SNMPv3 请求。 clsnmp 用于确定它是否应该发送 SNMPv1、SNMPv2c 或 SNMPv3 请求的文件是 clsnmp.conf 文件。 如果通过 -h 参数指定的目标匹配 clsnmp.conf 文件中的 winSNMP 名称,那么 clsnmp 使用在条目上指定的参数发送请求。 如果不指定 -h 参数,那么该请求将作为 SNMPv1request 发送。
标志
| 项 | 描述 |
|---|---|
| -c 社区 | 指定用于访问目标 SNMP 代理程序上的指定变量的共用名。 如果不指定共用名,那么缺省名为 public。 当使用基于用户的安全模型时,不需要共用名。 注: 社区名称区分大小写。
|
| -d DebugLevel | 指定调试级别。 缺省级别为 0,意味着无调试。 调试级别越高,显示的消息数越大。 调试级别为 0-4。 |
| -f ConfigurationFile | 指定配置文件的完整路径和文件名。 |
| -h TargetHost | 指定要向其发送请求的目标主机。 TargetHost 可以是 IPv4 地址、IPv6 地址、主机名或 clsnmp.conf 配置文件中的 winSNMP 名称。 如果不指定主机,那么缺省值为您的本地主机。 |
| -m MaxRepetitions | 只适用于 getbulk。 如果功能请求不是 getbulk,那么忽略它。 最大重复是要为每个变量绑定对(在第一个“-n 数字”后续作业后)返回的按字典排序的后续作业的数目。 例如,以后续作业“-n 数字”+1 开头返回每个变量绑定对的后续作业的“-m 数字”。 缺省值为 10。 |
| -n NonRepeaters | 只适用于 getbulk 请求。 如果功能请求不是 getbulk,那么忽略它。 NonRepeaters 是变量绑定对(名称/值)的数目,从第一个开始,只为此返回单一的后续作业。 缺省值是 0。 |
| -p PortNumber | 指定侦听陷阱的端口号。 如果不指定端口号,那么 clsnmp trap 功能在熟知端口 162(clsnmp 陷阱的缺省端口)上侦听。 |
| -r RetryNumber | 指定如果超时要重新尝试命令的最大次数。 缺省值为 2。 |
| -t TimeOutValue | 指定 clsnmp 命令等候来自 SNMP 代理程序的应答的时间量(以秒为单位)。 缺省值是 3。 |
| -v | 指定来自请求的输出应该使用详细的输出显示,例如,使用文本名称替换 MIB 对象标识。 |
| -? | 显示帮助信息。 |
参数
| 项 | 描述 |
|---|---|
| FUNCTION | 指定要执行的 SNMP 功能/操作为下列其中一项:get、getnext 、getbulk、set、 walk、trap 和 findname。 |
| MIBVariable | 指定管理信息库(MIB)对象(使用其对象描述符:文本名称)、使用 ASN.1 表示法的对象标识或二者的组合。 当与 walk 一起使用时,这是 MIB 对象前缀。 前缀可以是完整的对象标识的前导部分。 当与 findname 一起使用时,这是 ASN.1 表示法的对象标识。 |
| VALUE | 指定要由 SET 功能设置的值。 如果值中需要空格,那么必须将该值括在双引号 (") 中。 如果要将变量设置为也是类型的值,那么必须指定类型。 |
| VariableType | 指定正在设置的值的类型。 要完成 SNMP SET 请求,那么必须知道 SMI_type。 如果不指定类型,那么 clsnmp
首先搜索 /etc/mib.defs 文件,然后搜索编译的 MIB 以确定类型。 如果未查找到变量,那么返回错误。 如果指定了 VariableType,那么 VariableType 优先于可能在 MIB 中分配的任何类型。 VariableType 和值必须兼容。 例如,如果指定“number”类型和“foo”值,那么由于“foo”不是数字而返回错误。 VariableType 不区分大小写。 有效的变量类型是:
|
限制
在处理来自 clsnmp 管理器的 SNMPv1 协议请求期间,当 snmpdv3 守护程序遇到 SMI-v2 数据类型 MIB 时,它会跳过该 MIB,直到它找到 SMI-v1 数据类型 MIB 为止。
变通方法
应使用 SNMPv2 类型请求或 SNMPv3 类型请求来配置 clsnmp 管理器,以使用 snmpdv3 守护程序来转储所有 MIB 变量。
示例
- 获取 MIB 变量。
- 下面请求 MIB 对象
sysName.0:
此命令的输出看起来类似于:clsnmp get sysName.01.3.6.1.2.1.1.5.0 = hostname.austin.ibm.com - 下面请求 MIB 对象
myName.0,其中myName在 /etc/mib.defs 文件中定义为由sysName.0标识的同一对象:
此命令的输出看起来类似于:clsnmp get myName.01.3.6.1.2.1.1.5.0 = myhostname.austin.ibm.com - 下面通过 IPv6 地址请求 MIB 对象
sysName.0:
此命令的输出看起来类似于:clsnmp -h 2000:1:1:1:209:6bff:feae:6d67 get sysName.01.3.6.1.2.1.1.5.0 = hostname.austin.ibm.com
- 下面请求 MIB 对象
- 获取下一个 MIB 变量。
- 以下请求下一个逻辑 MIB 对象:
此命令的输出看起来类似于:clsnmp getnext udp1.3.6.1.2.1.7.1.0 = 653 - 以下请求下一个逻辑对象,使用
-v 选项显示具有文本名称(代替对象标识)的值:
此命令的输出看起来类似于:clsnmp -v getnext udpudpInDatagrams.0 = 653
- 以下请求下一个逻辑 MIB 对象:
- 设置 MIB 变量。
- 以下将 MIB 对象 sysName.0 设置为值‘hostname.austin.ibm.com’:
此命令产生类似于以下的输出:clsnmp set sysName.0 "hostname.austin.ibm.com"1.3.6.1.2.1.1.5.0 = hostname.austin.ibm.com - MIB 对象 sysName.0 的值还可以使用
VariableType 参数设置以指定正在设置的值的类型,如以下示例中所示:
此命令产生类似于以下的输出:clsnmp set sysName.0 displayname "hostname.austin.ibm.com"1.3.6.1.2.1.1.5.0 = hostname.austin.ibm.com
- 以下将 MIB 对象 sysName.0 设置为值‘hostname.austin.ibm.com’:
- 遍历 MIB 树。以下按名称返回所有以相同的对象标识前缀开头的对象,但具有较少的要在 clsnmp 命令和 SNMP 代理程序之间交换的数据包:
此命令的输出与以下类似:clsnmp -h loopback -v -m 10 bulkwalk udpclsnmp -v walk udp udpInDatagrams.0 = 653 udpNoPorts.0 = 22 udpInErrors.0 = 0 udpOutDatagrams.0 = 678 udpLocalAddress.0.0.0.0.7 = 0.0.0.0 udpLocalAddress.0.0.0.0.9 = 0.0.0.0 udpLocalAddress.0.0.0.0.13 = 0.0.0.0 udpLocalAddress.0.0.0.0.19 = 0.0.0.0 udpLocalAddress.0.0.0.0.37 = 0.0.0.0 udpLocalAddress.0.0.0.0.161 = 0.0.0.0 udpLocalAddress.0.0.0.0.5020 = 0.0.0.0 udpLocalPort.0.0.0.0.7 = 7 udpLocalPort.0.0.0.0.9 = 9 udpLocalPort.0.0.0.0.13 = 13 udpLocalPort.0.0.0.0.19 = 19 udpLocalPort.0.0.0.0.37 = 37 udpLocalPort.0.0.0.0.161 = 161 udpLocalPort.0.0.0.0.5020 = 5020 - 获取多个 MIB 变量。以下使用 getbulk 请求类型请求多个 MIB 对象。 getbulk 请求类型返回在命令上列出的一个或多个 MIB 对象的下一个逻辑对象。 在以下示例中, -n 选项指示仅对前两个变量(sysLocation 和 ifTable)请求下一个逻辑对象。 对于列表中的所有其他对象(tcp、udp 和 icmp),-m 选项指示请求 5 个副本。注: getbulk 请求类型是 SNMPv2 函数。 -h 参数指示主机、回送,在 clsnmp.conf 文件中定义为支持 SNMPv2 或 SNMPv3 的代理程序。
此命令产生类似于以下内容的输出:clsnmp -h loopback -v -n 2 -m 5 getbulk sysLocation ifTable tcp udp icmpsysLocation.0 = Research Triangle Park, NC ifIndex.1 = 1 tcpRtoAlgorithm.0 = 4 udpInDatagrams.0 = 782 icmpInMsgs.0 = 22 tcpRtoMin.0 = 0 udpNoPorts.0 = 22 icmpInErrors.0 = 0 tcpRtoMax.0 = 120 udpInErrors.0 = 0 icmpInDestUnreachs.0 = 22 tcpMaxConn.0 = -1 udpOutDatagrams.0 = 807 icmpInTimeExcds.0 = 0 tcpActiveOpens.0 = 1 udpLocalAddress.0.0.0.0.7 = 0.0.0.0 icmpInParmProbs.0 = 0 - 查找 ASN.1 变量的名称。以下发送请求进行搜索以获取给定 MIBVariable 输入的文本名称,其内部的 ASN.1 值与输入 ASN.1 值最佳匹配。 搜索从 /etc/mib.defs 文件开始,如果没有查找到,那么继续搜索编译的 MIB。 每个 clsnmp findname 调用仅允许一个 MIBVariable 。 例如,这可以使用类似于以下的命令完成:
此命令产生类似于以下内容的输出:clsnmp findname 1.3.6.1.2.1.6.13.1.21.3.6.1.2.1.6.13.1.2 found as: tcpConnLocalAddress类似的示例是:
此命令产生类似于以下内容的输出:clsnmp findname 1.3.6.1.2.1.6.13.1.2.01.3.6.1.2.1.6.13.1.2.0 found as: tcpConnLocalAddress.0另一个类似的示例是:
此命令产生类似于以下内容的输出:clsnmp findname 1.3.6.1.2.1.3.6.1.2. found as: mgmt - 发出 SNMPv3 请求。
- 如果 winSnmpName 条目使用类似于以下(所有都在一行上)的条目在管理器主机上的 /etc/clsnmp.conf
文件中配置:
并且在 snmpd 代理程序机器target1 9.3.149.26 snmpv3 u1 - - AuthNoPriv HMAC-SHA 76784e5935acd6033a855df1fac42acb187aa867 - -9.3.149.26上,用户u1正确配置,那么我们可以在管理器主机上发出命令:
此命令将产生类似于以下的输出:clsnmp -v -h target1 get sysName.0sysName.0 = somehostname.austin.ibm.com - 发出陷阱命令很简单,如下所示:
clsnmp trap注: 如果接收到的陷阱的安全模型为 SNMPv3,请确保在侦听陷阱的管理站上正确配置了/etc/clsnmp.conf 文件以接收陷阱。
- 如果 winSnmpName 条目使用类似于以下(所有都在一行上)的条目在管理器主机上的 /etc/clsnmp.conf
文件中配置:
文件
| 项 | 描述 |
|---|---|
| /etc/clsnmp.conf | clsnmp 命令的配置文件。 |
| /etc/mib.defs | 定义 SNMP 代理程序和管理器应当识别和处理的管理信息库(MIB)变量。 |