我一直在尝试使用 NET-SNMP“traphandle”创建一个简单的 dell s4810 交换机接口关闭状态警报。我想知道如何将通知信息传递给脚本,以便我可以解析文本?我可以激活脚本,但不能传递通知。也许有一个好的 python 或 perl 模块?我将不胜感激任何建议或建议。
答案1
当您收到 SNMP 陷阱时,守护进程 snmptrapd 会将此陷阱转发到外部程序(通常是您的脚本)。
snmptrapd 将添加一些参数(IP 地址、主机名、通知、OID),这些参数将被发送到脚本的标准输入中。
接收陷阱的脚本示例,该脚本来自http://net-snmp.sourceforge.net/wiki/index.php/TUT:Configuring_snmptrapd:
#!/bin/sh
read host
read ip
vars=
while read oid val
do
if [ "$vars" = "" ]
then
vars="$oid = $val"
else
vars="$vars, $oid = $val"
fi
done
echo trap: $1 $host $ip $vars
此脚本将接收 snmptrapd 守护进程的参数,并将其回显。因此,您可以添加命令以导出到文件,以查看您的配置是否正常工作。