我正在将温度、cpu 负载和内存数据写入 rrdtool 表,在更新中我使用 N 来打发时间,但是时间很长有问题。当最后一次更新时间为 1487212862 时,非法尝试使用时间 1487152126 进行更新(至少一秒) 这是一个相当大的时间差,我不知道为什么它会那么远。任何帮助都很棒——昨天它工作得很好,所以不知道哪里出了问题。更新功能:
#!/bin/bash
cd /temptest/
TEMPERATURE=$(/opt/vc/bin/vcgencmd measure_temp | sed 's/[^0-9]*//g')
TEMPERATURE=$(echo $TEMPERATURE | sed 's/.$/.&/')
CPULOAD=$(top -d 0.5 -b -n2 | grep "Cpu(s)"|tail -n 1 |
awk '{print $2 +$4}')
PIMEM=$(free -h | grep "Mem:" | awk '{print $4}')
PIMEM=$(echo $PIMEM | sed 's/[^0-9]*//g')
PIMEMTOTAL=$(free -h | grep "Mem:" | awk '{print $2}')
PIMEMTOTAL=$(echo $PIMEMTOTAL | sed 's/[^0-9]*//g')
PIMEMPERCENT=
$(awk -v mem="$PIMEM" -v tot="$PIMEMTOTAL" 'BEGIN{print (mem/tot) $
/usr/bin/rrdtool update pitable.rrd N:$TEMPERATURE:$CPULOAD:0:$PIMEMPERCENT
由于您使用
N:
的是 rrdtool 使用系统时间。这样的错误意味着您的系统时间已经改变......也许是一些错误配置......时区设置和时间重新调整例如?Rrdtool 在内部使用 UTC!