gpt4 book ai didi

linux - 强制 SNMP 将数字视为整数

转载 作者:塔克拉玛干 更新时间:2023-11-03 01:35:35 35 4
gpt4 key购买 nike

我有两个脚本,它们从 SAR 中获取值并将它们放入日志文件中(一个示例):

rxkBps=`sar -n DEV 1 295 | tail -n1 | awk '{print $5}'`
rxMbps=$(echo "scale=2;$rxkBps/128" | bc -l)
echo $rxMbps >./rxMbps.log
exit

该数字始终是十进制数(例如:.06)。
在 snmpd.conf 中,我为两个脚本添加了一个扩展部分,该部分采用该数字并将其与其 OID 相关联,在此示例中由 Get_rxMbps 表示:

extend Get_rxMbps /bin/sh /usr/local/bin/Get_rxMbps.sh

当我在 NET-SNMP-EXTEND-MIB::nsExtendObjects 上运行 snmpwalk 时,我得到了信息,但它认为它是一个字符串,我们的监控软件无法转换或使用字符串信息。

NET-SNMP-EXTEND-MIB::nsExtendCommand."Get_rxMbps" = STRING: /bin/sh
NET-SNMP-EXTEND-MIB::nsExtendArgs."Get_rxMbps" = STRING: /usr/local/bin/Get_rxMbps.sh
NET-SNMP-EXTEND-MIB::nsExtendInput."Get_rxMbps" = STRING:
NET-SNMP-EXTEND-MIB::nsExtendCacheTime."Get_rxMbps" = INTEGER: 5
NET-SNMP-EXTEND-MIB::nsExtendExecType."Get_rxMbps" = INTEGER: exec(1)
NET-SNMP-EXTEND-MIB::nsExtendRunType."Get_rxMbps" = INTEGER: run-on-read(1)
NET-SNMP-EXTEND-MIB::nsExtendStorage."Get_rxMbps" = INTEGER: permanent(4)
NET-SNMP-EXTEND-MIB::nsExtendStatus."Get_rxMbps" = INTEGER: active(1)
NET-SNMP-EXTEND-MIB::nsExtendOutput1Line."Get_rxMbps" = STRING: .83
NET-SNMP-EXTEND-MIB::nsExtendOutputFull."Get_rxMbps" = STRING: .83
NET-SNMP-EXTEND-MIB::nsExtendOutNumLines."Get_rxMbps" = INTEGER: 1
NET-SNMP-EXTEND-MIB::nsExtendResult."Get_rxMbps" = INTEGER: 0
NET-SNMP-EXTEND-MIB::nsExtendOutLine."Get_rxMbps".1 = STRING: .83

我是新手,继承了别人的工作,所以如果有更好的方法,我也对此持开放态度,但我需要 SNMP 来查看和使用该数字作为整数而不是字符串。

最佳答案

类型在相应的 MIB 文件中定义,除非您是该文件的作者,否则不应修改该文件。

你可以告诉 snmpwalk, snmpget 和类似的命令通过传递选项 -OQ 来删除类型信息,但这仍然会导致字符串被引用(至少对于我的 snmpwalk 命令)。

我建议调整您的监控软件或通过脚本传递 SNMP 输出,该脚本将相应地转换/删除字符串类型信息。

关于linux - 强制 SNMP 将数字视为整数,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/19769693/

35 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com