向SNMP守护程序添加一些OID

时间:2019-03-08 15:00:52

标签: bash snmp

我的服务器有问题。在此我想自己原谅一些OID。

我已经找到以下脚本并针对我的目的对其进行了自定义:

    #!/bin/sh -f

PLACE=".1.3.6.1.4.1.10876.2.1.1.1.1"  # NET-SNMP-PASS-MIB::netSnmpPassExamples
REQ="$2"                         # Requested OID

#
#  Process SET requests by simply logging the assigned value
#      Note that such "assignments" are not persistent,
#      nor is the syntax or requested value validated
#  
if [ "$1" = "-s" ]; then
  echo $* >> /tmp/passtest.log
  exit 0
fi

#
#  GETNEXT requests - determine next valid instance
#
if [ "$1" = "-n" ]; then
  case "$REQ" in
    $PLACE|     \
    $PLACE.0|       \
    $PLACE.0.*|     \
    $PLACE.1)       RET=$PLACE.1.0 ;;     # netSnmpPassString.0

    $PLACE.1.*|     \
    $PLACE.2|       \
    $PLACE.2.0|     \
    $PLACE.2.0.*|   \
    $PLACE.2.1|     \
    $PLACE.2.1.0|   \
    $PLACE.2.1.0.*| \
    $PLACE.2.1.1|   \
    $PLACE.2.1.1.*| \
    $PLACE.2.1.2|   \
    $PLACE.2.1.2.0) RET=$PLACE.2.1.2.1 ;; # netSnmpPassInteger.1

    $PLACE.2.1.2.*| \
    $PLACE.2.1.3|   \
    $PLACE.2.1.3.0) RET=$PLACE.2.1.3.1 ;; # netSnmpPassOID.1

    $PLACE.2.*|     \
    $PLACE.3)       RET=$PLACE.3.0 ;;     # netSnmpPassTimeTicks.0
    $PLACE.3.*|     \
    $PLACE.4)       RET=$PLACE.4.0 ;;     # netSnmpPassIpAddress.0
    $PLACE.4.*|     \
    $PLACE.5)       RET=$PLACE.5.0 ;;     # netSnmpPassCounter.0
    $PLACE.5.*|     \
    $PLACE.6)       RET=$PLACE.6.0 ;;     # netSnmpPassGauge.0

    *)              exit 0 ;;
  esac
else
#
#  GET requests - check for valid instance
#
  case "$REQ" in
    $PLACE.1.0| \
    $PLACE.2.1.2.1| \
    $PLACE.2.1.3.1| \
    $PLACE.3.0|     \
    $PLACE.4.0|     \
    $PLACE.5.0|     \
    $PLACE.6.0)     RET=$REQ ;;
    *)              exit 0 ;;
  esac
fi

#
#  "Process" GET* requests - return hard-coded value
#
echo "$RET"
case "$RET" in
  $PLACE.1.0)     echo "string";    echo "Life, the Universe, and Everything"; exit 0 ;;
  $PLACE.2.1.2.1) echo "integer";   echo "42";                                 exit 0 ;;
  $PLACE.2.1.3.1) echo "objectid";  echo "$PLACE.99";                          exit 0 ;;
  $PLACE.3.0)     echo "timeticks"; echo "363136200";                          exit 0 ;;
  $PLACE.4.0)     echo "ipaddress"; echo "127.0.0.1";                          exit 0 ;;
  $PLACE.5.0)     echo "counter";   echo "42";                                 exit 0 ;;
  $PLACE.6.0)     echo "gauge";     echo "42";                                 exit 0 ;;
  *)              echo "string";    echo "ack... $RET $REQ";                   exit 0 ;;  # Should not happen
esac

我还将脚本包含在/etc/snmp/snmpd.conf

snmpwalk返回测试值(正确),但是snmpget命令不起作用。

您知道我的脚本有什么问题吗?

0 个答案:

没有答案