No7. net-snmp 一些命令行应用程序:

本文深入介绍了SNMP协议下的多种工具,如snmpget、snmpwalk、snmpset等,详细解析了它们的使用方法及参数,展示了如何利用这些工具查询、修改网络设备的MIB对象,以及获取特定信息。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

一些应用程序可以用来从支持 SNMP 的设备获得数据。其中 snmpget, snmpgetnext 可以支持独立请求,比如:

当环境设置好后,运行snmpd.exe,即snmp代理进程,就可以使用管理工具查询其中的信息了。Net-snmp提供的查询工具有很多,这里只介绍常用的几个,而且大部分查询命令的格式都大同小异。这里以.iso.org.dod.internet.mgmt.mib-2.system为例,其Oid为:.1.3.6.1.2.1.1。结构如下:

  ………system                 .1.3.6.1.2.1.1

           |——sysDescr       .1.3.6.1.2.1.1.1

           |——sysObjectID    .1.3.6.1.2.1.1.2

           ……

1. snmpget 

输入如下命令:
snmpget -v 1 -c demopublic test.net-snmp.org system.sysUpTime.0 

会显示如下内容:
DISMAN-EVENT-MIB::sysUpTimeInstance = Timeticks: (783057833) 90 days, 15:09:38.33

 

该命令获得单个独立的 MIB 对象 system.sysUpTime.0 的值。
Normal 0 7.8 pt 0 2 false false false MicrosoftInternetExplorer4

snmpget.exe——snmpget [OPTIONS] AGENT OID [OID]...用来查询叶子节点

实例:snmpget –v2c –c publiclocalhost .1.3.6.1.2.1.1.5.0

-v2c:    使用的是2c的snmp版本,可选1|2c|3

  -c public:community 名为public

  localhost: 代理的地址,这里因为代理运行在本机上,所以可用localhost

 .1.3…….0:这里查询的是.iso.org.dod.internet.mgmt.mib-2.system.sysName,其Oid为.1.3.6.1.2.1.1.5,使用这个命令查询叶子节点要在后面加.0。

.0即表示一个实体。


2.snmpwalk

而 snmpwalk, snmptable, snmpdelta 则用来支持重复请求。

输入如下命令:
snmpwalk -v 2c -c demopublic test.net-snmp.org system 

会显示如下内容:

SNMPv2-MIB::sysDescr.0 = STRING: test.net-snmp.org
SNMPv2-MIB::sysObjectID.0 = OID: NET-SNMP-TC::linux
DISMAN-EVENT-MIB::sysUpTimeInstance = Timeticks: (783081729) 90 days, 15:13:37.29
SNMPv2-MIB::sysContact.0 = STRING: Net-SNMP Coders <net-snmp-coders@lists.sourceforge.net>
SNMPv2-MIB::sysName.0 = STRING: test.net-snmp.org
SNMPv2-MIB::sysLocation.0 = STRING: Undisclosed
SNMPv2-MIB::sysORLastChange.0 = Timeticks: (3) 0:00:00.03


上面的命令返回所有 system 节点以下的 MIB 对象的值
相当于便利system节点下的所有叶子节点。

3.snmpset 
命令 snmpset 对支持 SNMP 的设备配置属性。如下例所示:

 $ snmpget -v 1 -c demopublic test.net-snmp.org ucdDemoPublicString.0 
  UCD-DEMO-MIB::ucdDemoPublicString.0 = "hi there!"
 $ snmpset -v 1 -c demopublic test.net-snmp.org ucdDemoPublicString.0 s "Hello, world!"
  UCD-DEMO-MIB::ucdDemoPublicString.0 = "Hello, world!"
 $ snmpget -v 1 -c demopublic test.net-snmp.org ucdDemoPublicString.0 
  UCD-DEMO-MIB::ucdDemoPublicString.0 = "Hello, world!"
  

snmpset.exe——snmpset[OPTIONS] AGENT OID TYPE VALUE [OID TYPE VALUE]...修改数据

   实例:snmpset –v2c –c public localhost .1.3.6.1.2.1.4.21.1.3.xi 99

       x:在这里是索引值,表示表项中某一列的第几个数据,根据要求设定   

        i: 这里是列数据类型,包括i: INTEGER,u: unsigned INTEGER, t: TIMETICKS,

a: IPADDRESS o: OBJID, s: STRING, x: HEX STRING,

d: DECIMALSTRING, b: BITS U: unsigned int64,

I: signedint64, F: float, D: double


4. snmpnetstat 
命令 snmpdf, snmpnetstat, snmpstatus 可以从支持 SNMP 的设备获取特定的信息。比如下面的命令从目标系统上获得类似 netstat 的信息:

 % snmpnetstat -v 2c -c public -a testhost 

 Active Internet (tcp) Connections (including servers) 
 Proto Local Address Foreign Address           (state) 
 tcp   *.echo         *.*                      LISTEN 
 tcp   *.discard      *.*                      LISTEN 
 tcp   *.daytime      *.*                      LISTEN 
 tcp   *.chargen      *.*                      LISTEN 
 tcp   *.ftp          *.*                      LISTEN 
 tcp   *.telnet       *.*                      LISTEN 
 tcp   *.smtp         *.*                      LISTEN 
 Active Internet (udp) Connections 
 Proto Local Address 
 udp    *.echo 
 udp    *.discard 
 udp    *.daytime 
 udp    *.chargen 
 udp    *.time 

5. snmptranslate 
snmptranslate 命令将 MIB OIDs 的两种表现形式 ( 数字及文字 ) 相互转换。并显示 MIB 的内容与结构,如下所示:

 % snmptranslate .1.3.6.1.2.1.1.3.0 
     SNMPv2-MIB::sysUpTime.0 
 % snmptranslate -On SNMPv2-MIB::sysUpTime.0 
     .1.3.6.1.2.1.1.3.0 

6. snmpgetnext
  snmpgetnext.exe——snmpgetnext [OPTIONS] AGENT OID [OID]...通过父节点查询叶子节点

实例:snmpgetnext –v2c –c publiclocalhost .1.3.6.1.2.1.1

这个命令假设不知道叶子节点,但知道父节点,则可遍历到第一个叶子节点。此例结果等同于上一个例子。Oid也可输入.1.3.6.1.2,因为它是按字典顺序遍历的。(此处,可以结合数据结构二叉树的知识进行学习)


7. snmptable

snmptable.exe——snmptable [OPTIONS] AGENT TABLE-OID 用来查询表对象

实例:snmptable –v2c –c public localhost .1.3.6.1.2.1.4.20

这个命令查询表对象,本例中查询的是.iso.org.dod.internet.mgmt.mib-2.ip.ipAddrTable

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

Ricardo于

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值