免费注册 查看新帖 |

Chinaunix

  平台 论坛 博客 文库
最近访问板块 发新帖
楼主: zhaod06211
打印 上一主题 下一主题

perl如何获取远端windows的磁盘容量 [复制链接]

论坛徽章:
0
11 [报告]
发表于 2012-08-21 17:39 |只看该作者
windows开启snmp后,有对应的OID表示磁盘容量,用这个OID进行SNMP查询。

论坛徽章:
0
12 [报告]
发表于 2012-08-21 17:43 |只看该作者
OID的值是怎么得到的呀?

论坛徽章:
0
13 [报告]
发表于 2012-08-21 17:44 |只看该作者
回复 11# 兰花仙子


    嗯,谢谢~~~
这个OID的值是怎么得到的呀? 还是说有固定的对照关系?

论坛徽章:
0
14 [报告]
发表于 2012-08-21 18:19 |只看该作者
zhaod06211 发表于 2012-08-21 17:44
回复 11# 兰花仙子


查MS的手册,是固定值。

论坛徽章:
0
15 [报告]
发表于 2012-08-22 08:07 |只看该作者
回复 14# 兰花仙子


    谢谢仙子~~~

论坛徽章:
0
16 [报告]
发表于 2012-08-22 09:03 |只看该作者
回复 14# 兰花仙子


    嗯,我试了用Net::SNMP模块了,执行后报错,代码如下:
  1. use strict;
  2. use Net::SNMP;

  3. my $OID_disk='1.3.6.1.2.1.25.2.3.1.5';
  4. my ($session,$error) = Net::SNMP->session(
  5.                        -hostname => '192.168.1.3',
  6.                                            -community => 'public',
  7. #                                   -version => 'snmpv2c',
  8. );

  9. if (! defined $session) {
  10.         printf "ERROR: %s.\n", $error;
  11.         exit 1;
  12. }

  13. my $result = $session->get_request(-varbindlist => [$OID_disk],);

  14. if (!defined $result) {
  15.      printf "ERROR: %s.\n", $session->error();
  16.          $session->close();
  17.          exit 1;
  18. }

  19. print "$result->{$OID_disk}";
  20. $session->close();
  21. exit 0
复制代码
执行后报一下错误:
ERROR: Received noSuchName(2) error-status at error-index 1.

错误状态在错误索引1 是怎么回事呢?

论坛徽章:
42
19周年集字徽章-周
日期:2019-10-14 14:35:31平安夜徽章
日期:2015-12-26 00:06:30数据库技术版块每日发帖之星
日期:2015-12-01 06:20:002015亚冠之首尔
日期:2015-11-04 22:25:43IT运维版块每日发帖之星
日期:2015-08-17 06:20:00寅虎
日期:2014-06-04 16:25:27狮子座
日期:2014-05-12 11:00:00辰龙
日期:2013-12-20 17:07:19射手座
日期:2013-10-24 21:01:23CU十二周年纪念徽章
日期:2013-10-24 15:41:34IT运维版块每日发帖之星
日期:2016-01-27 06:20:0015-16赛季CBA联赛之新疆
日期:2016-06-07 14:10:01
17 [报告]
发表于 2012-08-22 09:11 |只看该作者
本帖最后由 laputa73 于 2012-08-22 10:51 编辑

你用snmpwalk -v2c -c public 192.168.1.3 .1.3.6.1.2.1.25.2.3.1.5命令先试试看
这个oid是一个表类型的。就是说会有多块硬盘的情况
你用get方法是不对的
用get的话,oid要用'1.3.6.1.2.1.25.2.3.1.5.1'

论坛徽章:
0
18 [报告]
发表于 2012-08-22 09:30 |只看该作者
回复 17# laputa73


    嗯,snmpwalk出现如下信息:
# snmpwalk -v 2c -c public 192.168.1.3 1.3.6.1.2.1.25.2.3.1.5
HOST-RESOURCES-MIB::hrStorageSize.1 = INTEGER: 15334399
HOST-RESOURCES-MIB::hrStorageSize.2 = INTEGER: 62781951
HOST-RESOURCES-MIB::hrStorageSize.3 = INTEGER: 362813951
HOST-RESOURCES-MIB::hrStorageSize.4 = INTEGER: 62781951
HOST-RESOURCES-MIB::hrStorageSize.5 = INTEGER: 196564
HOST-RESOURCES-MIB::hrStorageSize.6 = INTEGER: 98296

# snmpwalk -v 2c -c public 192.168.1.3 1.3.6.1.2.1.25.2.3.1.5.1
HOST-RESOURCES-MIB::hrStorageSize.1 = INTEGER: 15334399

“15334399”代表容量吗,可192.168.1.3的机器没这个容量呀,弄个不清楚了,如何分辨已使用多少,还剩多少呢?

论坛徽章:
42
19周年集字徽章-周
日期:2019-10-14 14:35:31平安夜徽章
日期:2015-12-26 00:06:30数据库技术版块每日发帖之星
日期:2015-12-01 06:20:002015亚冠之首尔
日期:2015-11-04 22:25:43IT运维版块每日发帖之星
日期:2015-08-17 06:20:00寅虎
日期:2014-06-04 16:25:27狮子座
日期:2014-05-12 11:00:00辰龙
日期:2013-12-20 17:07:19射手座
日期:2013-10-24 21:01:23CU十二周年纪念徽章
日期:2013-10-24 15:41:34IT运维版块每日发帖之星
日期:2016-01-27 06:20:0015-16赛季CBA联赛之新疆
日期:2016-06-07 14:10:01
19 [报告]
发表于 2012-08-22 10:51 |只看该作者
HOST-RESOURCES-MIB:hrStorageDescr  这个可以看到分区的描述
OID         1.3.6.1.2.1.25.2.3.1.3
HOST-RESOURCES-MIB:hrStorageUsed 已经使用的
OID         1.3.6.1.2.1.25.2.3.1.6
HOST-RESOURCES-MIB:hrStorageAllocationUnits  这个是容量的单位
OID         1.3.6.1.2.1.25.2.3.1.4

建议你百度一下HOST-RESOURCES-MIB,看看描述
这个应该是各个分区的大小,不是物理磁盘的大小。

还可以试试
HOST-RESOURCES-MIB:hrDiskStorageCapacity
OID         1.3.6.1.2.1.25.3.6.1.4
Type         KBytes

我手头没有开snmp 的windows机器了。没法试了

论坛徽章:
0
20 [报告]
发表于 2012-08-22 11:36 |只看该作者
回复 19# laputa73


    嗯,试了那几个OID,磁盘的大小还是不对。
不过还是谢谢你啦。
您需要登录后才可以回帖 登录 | 注册

本版积分规则 发表回复

  

北京盛拓优讯信息技术有限公司. 版权所有 京ICP备16024965号-6 北京市公安局海淀分局网监中心备案编号:11010802020122 niuxiaotong@pcpop.com 17352615567
未成年举报专区
中国互联网协会会员  联系我们:huangweiwei@itpub.net
感谢所有关心和支持过ChinaUnix的朋友们 转载本站内容请注明原作者名及出处

清除 Cookies - ChinaUnix - Archiver - WAP - TOP