我正在将温度、CPU 负载和内存数据写入 rrdtool 表,在更新时我使用 N 来消磨时间,但是时间偏差很大,这是一个问题。非法尝试使用时间 1487152126 进行更新,而上次更新时间是 1487212862(最小一秒步长)这是一个相当大的时间差,我不知道为什么会相差这么远。任何帮助都很重要 - 昨天它运行良好,所以不知道它哪里出了问题。更新功能:
#!/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
答案1
由于您正在使用N:
rrdtool,因此它使用系统时间。这样的错误意味着您的系统时间已更改...可能是某些配置错误...例如,时区设置和时间重新调整?Rrdtool 内部使用 UTC!