两种办法:

1)pass方式

/etc/snmp/snmpd.conf

 

 

 写脚本

 

 

 脚本需要注意:要连续输出三行:1、OID  2、类型  3、值

如果不按照这个规定,直接输出值,将会报错。

检查

 

 

第二种方法:extend方法

/etc/snmp/snmpd.conf最后增加一行:

extend .1.3.6.1.4.1.9721.2 mylx /usr/bin/bash  /tmp/lx.sh

写脚本(直接输出,不必象pass方式那样有规定)

#!/bin/sh
#echo $2 #因为snmpd是用EXEC -g MIBOID来调脚本的,所以MIBOID是第二个参数
#echo string

isdata=`df -h | grep -c '/adata'`
mystr=NO
if [ $isdata -eq 1 ]; then
  mystr=OK;
fi
echo $mystr

但是,这里定义的OID并不是可以直接引用的OID,具体引用值需要snmpwalk跑一下

.1.3.6.1.4.1.9721.2.1.0 = INTEGER: 1
.1.3.6.1.4.1.9721.2.2.1.2.4.109.121.108.120 = STRING: "/usr/bin/bash"
.1.3.6.1.4.1.9721.2.2.1.3.4.109.121.108.120 = STRING: "/tmp/lx.sh"
.1.3.6.1.4.1.9721.2.2.1.4.4.109.121.108.120 = ""
.1.3.6.1.4.1.9721.2.2.1.5.4.109.121.108.120 = INTEGER: 5
.1.3.6.1.4.1.9721.2.2.1.6.4.109.121.108.120 = INTEGER: 1
.1.3.6.1.4.1.9721.2.2.1.7.4.109.121.108.120 = INTEGER: 1
.1.3.6.1.4.1.9721.2.2.1.20.4.109.121.108.120 = INTEGER: 4
.1.3.6.1.4.1.9721.2.2.1.21.4.109.121.108.120 = INTEGER: 1
.1.3.6.1.4.1.9721.2.3.1.1.4.109.121.108.120 = STRING: "NO"
.1.3.6.1.4.1.9721.2.3.1.2.4.109.121.108.120 = STRING: "NO"
.1.3.6.1.4.1.9721.2.3.1.3.4.109.121.108.120 = INTEGER: 1
.1.3.6.1.4.1.9721.2.3.1.4.4.109.121.108.120 = INTEGER: 0
.1.3.6.1.4.1.9721.2.4.1.2.4.109.121.108.120.1 = STRING: "NO"

 

posted on 2022-08-25 12:44  胡彼德  阅读(621)  评论(0编辑  收藏  举报