我需要在bash中编写一个脚本,它从rrd文件获取最后一个输出:
#rrdtool lastupdate /home/usr/tmp/4880.rrd
输出有两列和三行,我可以使用
达到我想要的值#rrdtool lastupdate /home/usr/tmp/4880.rrd | grep -v ^$ | grep -v ^$ | awk '{print $2}'
这给出了数值输出,例如55600
现在我需要每5分钟运行一次,并将当前值与5分钟前的最后一个值进行比较,如果差异超过阈值,则触发另一个bash脚本的操作。
寻找如何完成这项工作的想法。
也可以使用rrdtool lastupdate来获取最后一个和第二个最后一个值,并且如果差异增加了阈值,则比较并触发操作,因为此rrd数据库每300秒轮询一次(5分钟。)
答案 0 :(得分:0)
这会吗?
THRESHOLD=100
while true; do
VALUE=`rrdtool lastupdate /home/usr/tmp/4880.rrd | grep -v ^$ | grep -v ^$ | awk '{print $2}'`
if [ -n "$OLDVALUE" ]; then
if [ $VALUE -gt `expr $OLDVALUE '+' $THRESHOLD` ] || [ "$VALUE" -lt `expr $OLDVALUE - $THRESHOLD` ]; then
echo "Oh noez, values are too different!!! new $VALUE old $OLDVALUE"
fi
fi
sleep 300
OLDVALUE=$VALUE
done