Ffmap-backend skript für picture only

unter der Vorraussetzung das ihr mit dem ffmap backend regelmässig die rrd datenbank befüllt (und sinnigerweise den Teil für das Bildgenerieren selbst aus dem backend.py rausgenommen habt) hier ein skript das ihr seperat benutzen könnt um die Bilder zu generieren, um Monats wochen Jahres und 3 Jahresüberblicke zu generieren …

#!/bin/bash
#
#
# if you tweak your ffmap-backend to not do everytime rrd graphics you maybe still want the rrd database filled up
# while thats easy, just remove picture generating process from backend.py
# ( basicly remove rrd.update_images() or wrap it in some if then lalala) 
# but then you need to do them by hand ...
# fortunaly i spend some time in doing so ...
# (c) copyleft fuzzle cccfr/fffr

actpwd=$PWD
nodedb=/home/freifunk/ffmap-backend/nodedb/
output=/home/freifunk/ffmap-backend/ffmap-data/nodes/
cd $nodedb

for i in * ; do
        if [ $i != nodes.rrd ];then
                rrdtool graph $output$(echo -n $i|sed s/.rrd/.png/g) -s -1d -w 800 -h 400 -l 0 -y 1:1 DEF:clients=$nodedb$i:clients:AVERAGE VDEF:maxc=clients,MAXIMUM CDEF:c=0,clients,ADDNAN CDEF:d=clients,UN,maxc,UN,1,maxc,IF,* AREA:c#0F0:up AREA:d#F00:down LINE1:c#00F:clients 
        fi
done

# do some magic globaGraph
# normal (3 day)
rrdtool graph $output"globalGraph.png" -s -259200 -e 0 -w 800 -h 600 DEF:nodes=$nodedb"nodes.rrd":nodes:AVERAGE LINE1:nodes#F00:nodes DEF:clients=$nodedb"nodes.rrd":clients:AVERAGE LINE2:clients#00F:clients
# daily
rrdtool graph $output"globalGraphD.png" -s -86400 -e 0 -w 800 -h 600 DEF:nodes=$nodedb"nodes.rrd":nodes:AVERAGE LINE1:nodes#F00:nodes DEF:clients=$nodedb"nodes.rrd":clients:AVERAGE LINE2:clients#00F:clients
# yearly
rrdtool graph $output"globalGraphY.png" -s -31557600 -e 0 -w 800 -h 600 DEF:nodes=$nodedb"nodes.rrd":nodes:AVERAGE LINE1:nodes#F00:nodes DEF:clients=$nodedb"nodes.rrd":clients:AVERAGE LINE2:clients#00F:clients
# monthy
rrdtool graph $output"globalGraphM.png" -s -2678400 -e 0 -w 800 -h 600 DEF:nodes=$nodedb"nodes.rrd":nodes:AVERAGE LINE1:nodes#F00:nodes DEF:clients=$nodedb"nodes.rrd":clients:AVERAGE LINE2:clients#00F:clients
# weekly
rrdtool graph $output"globalGraphW.png" -s -604800 -e 0 -w 800 -h 600 DEF:nodes=$nodedb"nodes.rrd":nodes:AVERAGE LINE1:nodes#F00:nodes DEF:clients=$nodedb"nodes.rrd":clients:AVERAGE LINE2:clients#00F:clients
# 3 years
rrdtool graph $output"globalGraph3Y.png" -s -94672800 -e 0 -w 800 -h 600 DEF:nodes=$nodedb"nodes.rrd":nodes:AVERAGE LINE1:nodes#F00:nodes DEF:clients=$nodedb"nodes.rrd":clients:AVERAGE LINE2:clients#00F:clients

cd $actpwd
1 Like

Sehr schön.
Auch wenn andere Datenbanken sicher langfristig die besser Lösung sein werden: Magst Du das nicht als PullRequest einreichen?

mhm, keine zeit das sauber zu machen,
bezieht sich vor allem auf das ändern der –with-rrd Argumente/funktion … die soll ja dann weiter nativ das gleicht tun wie zuvor - (wegen kompatibilität und so) … ichhab das anders geacht, ich hab schlicht die bilder generierung in ein eigenes Argument gepackt –with-img .