#!/bin/bash # this script is started: # - manual, from the monitor folder # - cronwise, from the project-HOME folder # usage: # ./createGraphs 1d # or 1h or 2w or 1y cd monitor >/dev/null 2>&1 # this only works if we are in the HOME folder, else its ignored with an error # the output of this script can only be visualized under a webserver FOLDER='/var/www/suy.nl/m' function graph { P=${1} mkdir -p ${FOLDER}/${P} rrdtool graph ${FOLDER}/${P}/disk.png \ --imgformat PNG \ --width 640 \ --height 240 \ --upper-limit 100 \ --lower-limit 0 \ --start -${P} \ --watermark "$(date)" \ --vertical-label 'Percentage' \ --title 'Usage last '${P} \ 'DEF:root=disk.rrd:root:AVERAGE' \ 'DEF:memt=mem.rrd:total:AVERAGE' \ 'DEF:memu=mem.rrd:used:AVERAGE' \ 'CDEF:memp=memu,memt,/' \ 'CDEF:memq=memp,100,*' \ 'AREA:root#0000FF:"disk /"' \ 'LINE2:memq#00FF00:"Memory"' rrdtool graph ${FOLDER}/${P}/load.png \ --imgformat PNG \ --width 640 \ --height 240 \ --upper-limit 1 \ --lower-limit 0 \ --start -${P} \ --watermark "$(date)" \ --title 'processor load in '${P} \ --vertical-label 'Processors used' \ 'DEF:min1=load.rrd:min1:AVERAGE' \ 'DEF:min5=load.rrd:min5:AVERAGE' \ 'DEF:min15=load.rrd:min15:AVERAGE' \ 'AREA:min1#FF0000:"1 minute"' \ 'AREA:min5#FFA500:"5 minutes"' \ 'LINE1:min5#FF0000:' \ 'AREA:min15#FFD801:"15 minutes"' \ 'LINE1:min15#FFA500:' rrdtool graph ${FOLDER}/${P}/cpu.png \ --imgformat PNG \ --width 640 \ --height 240 \ --upper-limit 10 \ --lower-limit 0 \ --start -${P} \ --watermark "$(date)" \ --vertical-label 'Percentage' \ --title 'CPU usage in '${P} \ 'DEF:us=cpu.rrd:us:AVERAGE' \ 'DEF:sy=cpu.rrd:sy:AVERAGE' \ 'DEF:ni=cpu.rrd:ni:AVERAGE' \ 'AREA:sy#00FF00:"sy"' \ 'STACK:us#0000FF:"us"' \ 'STACK:ni#FF0000:"ni"' rrdtool graph ${FOLDER}/${P}/network.png \ --imgformat PNG \ --width 640 \ --height 240 \ --start -${P} \ --watermark "$(date)" \ --vertical-label 'Bytes' \ --upper-limit 10000 \ --lower-limit 0 \ --title 'Network last '${P} \ --lower-limit 0 \ 'DEF:in=network.rrd:in:AVERAGE' \ 'DEF:out=network.rrd:out:AVERAGE' \ 'AREA:out#00FF00:"out"' \ 'LINE2:in#0000FF:"in"' } for var in "$@" do graph "$var" done