免费注册 查看新帖 |

Chinaunix

  平台 论坛 博客 文库
最近访问板块 发新帖
查看: 5270 | 回复: 4
打印 上一主题 下一主题

[函数] net-snmp开发Agent,调用函数的问题,泪汪汪跪求 [复制链接]

论坛徽章:
0
跳转到指定楼层
1 [收藏(0)] [报告]
发表于 2006-02-10 14:13 |只看该作者 |倒序浏览
欲通过调用Agent动态获取系统资源(比如:CPU利用百分数)
希望每次调用snmpget时得到的结果都是实时更新的。
目前我做的只能获取一个静态的值,即在调用snmpget的时候Agent没有再次调用函数。

我的做法如下:
1.  写mib文件,并使用mib2c编译;
2. 将编译生成的.c文件修改,关键部分为:
  
   #include <...>
    ...
  long    testAgentCpu1 = 1; /*  欲输出的变量   */

   void   init_testAgentCpu1(void){
   static oid testAgentCpu1_oid[] = { 1,3,6,1,4,1,8072,2,4,1,1,1 };
   al_share_mem(&testAgentCpu1); /* 俺写的函数  */
  
   ...
    netsnmp_register_int_instance("testAgentCpu1",
                                  testAgentCpu1_oid,
                                  OID_LENGTH(testAgentCpu1_oid),
                                  &testAgentCpu1, NULL);
    }//file ended

将该文件编译后,启动snmpd,用snmpget得到的值总是不变(实际上cpu的值是变化的),说明没有调用al_share_mem()函数。

请高人指点。。

论坛徽章:
0
2 [报告]
发表于 2006-02-11 20:18 |只看该作者
忘了, 完全想不起來了, 只能從tutorial看了。
那個東西BUG很多, 也要小心這個

论坛徽章:
0
3 [报告]
发表于 2006-02-12 17:36 |只看该作者
你在程序中加一个静态变量,每调用一次函数打印一次,看是否真的没调用函数!

论坛徽章:
0
4 [报告]
发表于 2006-02-13 09:41 |只看该作者
linternt老兄说的打印静态变量不知道在snmpget 或snmpwalk中怎么实现
目前我可以将mib生成.c文件的变量直接映射为共享内存地址上,这样倒是可以对这些变量进行实时访问
现在想知道有没有通过snmpd的命令来触发函数执行的方法(相当于重新获取变量值)

论坛徽章:
0
5 [报告]
发表于 2006-02-13 09:56 |只看该作者
说明没有调用al_share_mem()函数。


要不你在al_share_mem()函数中加个静态变量,命令执行一次就加1,然后打印这个变量,可行吗?
您需要登录后才可以回帖 登录 | 注册

本版积分规则 发表回复

  

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

清除 Cookies - ChinaUnix - Archiver - WAP - TOP