【问题标题】:rrdtool update expected 2 data sourcesrrdtool 更新预期 2 个数据源
【发布时间】:2020-01-15 18:14:50
【问题描述】:

我编写了一个简单的 rrdtool 数据库来绘制 Wi-Fi 信号强度和调制图。信号强度有效,但是当我尝试使用 MCS 信息更新数据库时,我得到:

ERROR: ./somefile.rrd: expected 2 data source readings (got 1) from mcsul15

这是我的更新代码:

rssi=`snmpget -v 2c -c communityname 1.2.3.4 .1.3.6.1.4.1.17713.21.1.2.3.0 | awk -v x=4 '{print $x}' | tr -d -`
noisefloor=`snmpget -v 2c -c communityname 1.2.3.4 .1.3.6.1.4.1.17713.21.1.2.20.1.9.1 | awk -v x=4 '{print $x}' | tr -d -`
ulmcs14=`snmpget -v 2c -c communityname 1.2.3.4 CAMBIUM-PMP80211-MIB::ulWLanMCS14Packets.0 | awk -v x=4 '{print $x}'`
ulmcs15=`snmpget -v 2c -c communityname 1.2.3.4 CAMBIUM-PMP80211-MIB::ulWLanMCS15Packets.0 | awk -v x=4 '{print $x}'`
echo $rssi
echo $noisefloor
echo $ulmcs14
echo $ulmcs15
rrdtool update ./somefile.rrd --template \
    rssi:noisefloor N:$rssi:$noisefloor \
    mcsul15:mcsul14 N:$ulmcs15:$ulmcs14

这给了我:

68
94
143679
17602658
ERROR: ./somefile.rrd: expected 2 data source readings (got 1) from mcsul15

我错过了什么?

【问题讨论】:

    标签: rrdtool


    【解决方案1】:

    假设somefile.rrd 中定义了 4 个 DS 并使用这 4 个名称,您应该在更新时将所有四个一起提供。更新只能指定一个模板,其他参数应采用该格式。

    此外,请检查您的 DS 名称是否正确,因为您的变量名为 $ulmcs15,但 DS 的名称为 mcsul15

    rrdtool update ./somefile.rrd --template \
      rssi:noisefloor:mcsul15:mcsul14 \
      N:$rssi:$noisefloor:$ulmcs15:$ulmcs14
    

    错误消息是因为在您的原始命令行中,mcsul15:mcsul14 被视为更新向量,而不是模板。因此,它是一个时间戳和一个值,其中两个是预期的。说“在 'mcsul15' 中无法识别时间戳”之类的错误消息会更好,但这是一个不同的问题......

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2017-04-03
      • 1970-01-01
      • 2018-05-20
      相关资源
      最近更新 更多