用于 rrdtool 获取的 Cronjob

Cronjob for rrdtool fetch

我已经创建了 bash 文件,它可以 运行 使用控制台正确使用,但不能使用 crontab。在 /home/zon/rrd-aggregate/agg.log 它 returns nan。但是如果它 运行s 使用控制台,它会正确显示来自 rrd 的值。

# aggregate.sh
cat aggregate-rrd.sh

rm -rf /home/zon/rrd-aggregate/agg.log


rrdtool fetch /var/www/html/cacti/rra/iboss-el-srv_linux_cpu_system_4703.rrd AVERAGE |tail -2|head -n1 |cut -d":" -f2 |tr -d " " >> /home/zon/rrd-aggregate/agg.log

rrdtool fetch /var/www/html/cacti/rra/iboss-el-srv_linux_cpu_user_4704.rrd AVERAGE |tail -2|head -n1 |cut -d":" -f2 |tr -d " " >> /home/zon/rrd-aggregate/agg.log

rrdtool fetch /var/www/html/cacti/rra/iboss-el-srv_linux_cpu_nice_4702.rrd AVERAGE |tail -2|head -n1 |cut -d":" -f2 |tr -d " " >> /home/zon/rrd-aggregate/agg.log

在日志文件中,它只显示 nan。

如果我从控制台 运行 它会像这样工作。

rrdtool fetch /var/www/html/cacti/rra/iboss-el-srv_linux_cpu_system_4703.rrd 平均值 |tail -2|head -n1 |cut -d":" -f2 |tr -d " " 1.0488333333e+00

enter image description here

rrdtool fetch /var/www/html/cacti/rra/iboss-el-srv_linux_cpu_nice_4702.rrd 平均值

它显示的不止于此,但我只是在这里放了一个示例。

1518779700: 2.2383255814e+00 1518780000: 9.6494444444e-01 1518780300: 2.0843398365e+00 1518780600:-南

enter image description here

新代码如下所示:

rrdtool fetch /var/www/html/cacti/rra/iboss-el-srv_linux_cpu_system_4703.rrd AVERAGE |tail -3|head -n1 |cut -d":" -f2 |tr -d " " >> /home/zon/rrd-aggregate/agg.log

谢谢大家。现在我得到了答案,它可能是我使用 rrdtool fetch 检索的第一个 rrd 文件恰好每 5 分钟发生一次,而 cronjob 在同一时间点执行相同的操作。这就是为什么我在 cronjob 时得到 nan 的原因。解决方案是让新的 rrd 比第一个 rrd 晚 5 分钟。

rrdtool fetch /var/www/html/cacti/rra/iboss-el-srv_linux_cpu_system_4703.rrd AVERAGE |tail -3|head -n1 |cut -d":" -f2 |tr -d " " >> /home/zon/rrd-aggregate/agg.log