- 论坛徽章:
- 0
|
欲通过调用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()函数。
请高人指点。。 |
|