Net-snmp安装开发流程:
Net-snmp安装开发流程_cao849861802的博客-CSDN博客
mib文件构建,标量,一维表量,二维表量:
mib文件构建,标量,一维表量,二维表量_cao849861802的博客-CSDN博客
Mib2c构建.C和.H文件,标量,一维表量,二维表量,表量索引:
Mib2c构建.C和.H文件,标量,一维表量,二维表量,表量索引_cao849861802的博客-CSDN博客
修改mib2c生成的.c文件:
修改mib2c生成的.c文件_cao849861802的博客-CSDN博客
为net-snmp添加新的节点.c,添加私有节点:
为net-snmp添加新的节点.c,添加私有节点_cao849861802的博客-CSDN博客
------------------------------------------------------------------------------------------------
将修改好的mib.c文件添加到net-snmp有三种方式:
这里我只做了2,3
2的话我尝试添加其他软件的lib库的时候添加一直添加不上,所以这里只说怎么用,如果不添加其他的lib库的话,这样还是可以的,如果添加的话建议使用3的方式;
方法2:
创建Makefile如下:
CC=gcc
CFLAGS := -I ../../../include/
LIBADMINTARGET = adminCard.so
LIBADMINSOURCE:= ./adminCard.c
admin:$(LIBADMINTARGET)
$(LIBADMINTARGET):
$(CC) $(CFLAGS) -fpic -shared -o $(LIBADMINTARGET) $(LIBADMINSOURCE)
all:admin
.PHONY : clean
clean :
rm -f *.so *.o
这个makefile放在生成的.c的路径下,上面的include指的就是net-snmp的指定的安装路径下的include;
然后make all就可以生成.so文件了
修改snmpd.conf这个文件的最后添加内容如下:
dlmod adminCard /media/build/net-snmp/net-snmp/share/snmp/mibs/adminCard.so
保存退出
重新启动snmpd:
snmpd -DadminCard,dlmod -c etc/snmpd.conf &
这样就挂载上了。
采用snmpget就可以访问了,
snmpget格式:
snmpget -v2c -c public 127.0.0.1 1.3.6.1.4.1.1314.10001.1.0
snmpget -v2c -c public 127.0.0.1 1.3.6.1.4.1.1314.10002.1.2.1(一维表)
snmpget -v2c -c public 127.0.0.1 1.3.6.1.4.1.1314.10003.1.3.1.1(二维表)
snmpset格式:
snmpset -v2c -c public 127.0.0.1 1.3.6.1.4.1.1314.10001.1.0 s aaa
这里的s指的格式字符串,其他的可以看help
方法3:
直接使用命令如下:
net-snmp-config --compile-subagent snmpapp --ldflags -lxxx *.c
这里的*.c就是我们要编译的c文件。
-lxxx就是我们可以在这里链接动态库
如果看不到库可以使用如下命令:
export LD_LIBRARY_PATH=$LD_LIBRARY_PATH:/media/build/net-snmp/net-snmp/lib
把动态库的路径标识出来;
这注意每次编译要把之前生成的snmpapp删除再编译新的app。
运行snmpapp
./snmpapp -Dswitch -f &
这里的 –D是打开调试开关:DEBUGMSGTL,方便我们调试用的,如果在代码中想修改打印,可以直接添加DEBUGMSGTL,不要使用prinf,我这边好像是无法打印的。