我已经用 Debian 在 Beaglebone Black 上安装了 snmpd,到目前为止一切正常,除了一件事。
我已经为传递配置了 snmpd.conf
pass .1.3.6.1.4.1.45919 /bin/sh /usr/local/bin/snmp-20
然后 snmp-20 是一个批处理脚本,看起来像这样
#!/bin/bash
if [ "$1" = "-n" ]
then
exit 0
fi
. /root/snmp.cfg
#sSerialNumber
if [ "$2" = ".1.3.6.1.4.1.45919.1.120.5" ]
then
echo 1.3.6.1.4.1.45919.1.120.5
echo string
echo $serial
exit 0
fi
在 snmp.cfg 它看起来像这样
serial=12345
我觉得这一切都很简单。现在,当我运行/bin/sh /usr/local/bin/snmp-20
或只是/usr/local/bin/snmp-20
得到预期的输出时。
当我这样做时,snmpget -c public -v2c localhost 1.3.6.1.4.1.45919.1.120.5
它返回“当前不存在这样的实例......”
但是,当我评论 ./root/snmp.cfg 时,snmpget 调用是成功的,所以调用参数都可以正常工作。
调用命令时脚本似乎退出source /root/snmp.cfg
,但仅在由 snmpget 调用时退出,而不是在从提示符调用时退出。
任何想法将不胜感激。