#/bin/sh


HOSTS="pinge.lan.defora.org rst.defora.org raq3.dmz.defora.org raq4.dmz.defora.org"

#colors
UPTIME_AREA="#ff7f7f"
UPTIME_LINE="#ff4f4f"
RAM_TOTAL="#ff0000"
RAM_FREE="#0000ff"
RAM_SHARED="#00ffff"
RAM_BUFFER="#00ff00"
SWAP_TOTAL="#ff0000"
SWAP_FREE="#0000ff"
USERS_AREA="#7f7fff"
USERS_LINE="#4f4fff"
PROCS_AREA="#7f7fff"
PROCS_LINE="#4f4fff"
IF_RX_AREA="#30ff30"
IF_RX_LINE="#00d000"
IF_TX_LINE="#4f4fff"


for i in $HOSTS; do
	RRD="$i/uptime.rrd"
	rrdtool graph "$i/uptime-hour.png" --start -3600 \
		--imgformat PNG \
		DEF:uptime=$RRD:uptime:AVERAGE \
		CDEF:ruptime=uptime,3600,/ \
		AREA:ruptime$UPTIME_AREA \
		LINE2:ruptime$UPTIME_LINE:"Uptime\:\g" \
		GPRINT:ruptime:LAST:" %.2lf" \
		--title "$i uptime (1 hour)" --vertical-label "hours"
	rrdtool graph "$i/uptime-day.png" --start -86400 \
		--imgformat PNG \
		DEF:uptime=$RRD:uptime:AVERAGE \
		CDEF:ruptime=uptime,3600,/ \
		AREA:ruptime$UPTIME_AREA \
		LINE2:ruptime$UPTIME_LINE:"Uptime" \
		GPRINT:ruptime:LAST:" %.2lf" \
		--title "$i uptime (1 day)" --vertical-label "hours"
	rrdtool graph "$i/uptime-week.png" --start -604800 \
		--imgformat PNG \
		DEF:uptime=$RRD:uptime:AVERAGE \
		CDEF:ruptime=uptime,3600,/ \
		AREA:ruptime$UPTIME_AREA \
		LINE2:ruptime$UPTIME_LINE:"Uptime" \
		GPRINT:ruptime:LAST:" %.2lf" \
		--title "$i uptime (1 week)" --vertical-label "hours"

	RRD="$i/load.rrd"
	rrdtool graph "$i/load-hour.png" --start -3600 \
		--imgformat PNG \
		DEF:load1=$RRD:load1:AVERAGE \
		DEF:load5=$RRD:load5:AVERAGE \
		DEF:load15=$RRD:load15:AVERAGE \
		CDEF:rload1=load1,65536,/ \
		CDEF:rload5=load5,65536,/ \
		CDEF:rload15=load15,65536,/ \
		AREA:rload1#ffef00 \
		AREA:rload5#ffbf00 \
		AREA:rload15#ff8f00 \
		LINE2:rload1#ffdf00:"Load 1 min\:\g" \
		GPRINT:rload1:LAST:" %.2lf" \
		LINE2:rload5#ffaf00:"Load 5 min\:\g" \
		GPRINT:rload5:LAST:" %.2lf" \
		LINE2:rload15#ff7f00:"Load 15 min\:\g" \
		GPRINT:rload15:LAST:" %.2lf" \
		--title "$i load average (1 hour)" --vertical-label "load"
	rrdtool graph "$i/load-day.png" --start -86400 \
		--imgformat PNG \
		DEF:load1=$RRD:load1:AVERAGE \
		DEF:load5=$RRD:load5:AVERAGE \
		DEF:load15=$RRD:load15:AVERAGE \
		CDEF:rload1=load1,65536,/ \
		CDEF:rload5=load5,65536,/ \
		CDEF:rload15=load15,65536,/ \
		AREA:rload1#ffef00 \
		AREA:rload5#ffbf00 \
		AREA:rload15#ff8f00 \
		LINE2:rload1#ffdf00:"Load 1 min\:\g" \
		GPRINT:rload1:LAST:" %.2lf" \
		LINE2:rload5#ffaf00:"Load 5 min\:\g" \
		GPRINT:rload5:LAST:" %.2lf" \
		LINE2:rload15#ff7f00:"Load 15 min\:\g" \
		GPRINT:rload15:LAST:" %.2lf" \
		--title "$i load average (1 day)" --vertical-label "load"
	rrdtool graph "$i/load-week.png" --start -604800 \
		--imgformat PNG \
		DEF:load1=$RRD:load1:AVERAGE \
		DEF:load5=$RRD:load5:AVERAGE \
		DEF:load15=$RRD:load15:AVERAGE \
		CDEF:rload1=load1,65536,/ \
		CDEF:rload5=load5,65536,/ \
		CDEF:rload15=load15,65536,/ \
		AREA:rload1#ffef00 \
		AREA:rload5#ffbf00 \
		AREA:rload15#ff8f00 \
		LINE2:rload1#ffdf00:"Load 1 min\:\g" \
		GPRINT:rload1:LAST:" %.2lf" \
		LINE2:rload5#ffaf00:"Load 5 min\:\g" \
		GPRINT:rload5:LAST:" %.2lf" \
		LINE2:rload15#ff7f00:"Load 15 min\:\g" \
		GPRINT:rload15:LAST:" %.2lf" \
		--title "$i load average (1 week)" --vertical-label "load"

	RRD="$i/ram.rrd"
	rrdtool graph "$i/ram-hour.png" --start -3600 \
		--imgformat PNG \
		--base 1024 \
		DEF:ramtotal=$RRD:ramtotal:AVERAGE \
		DEF:ramfree=$RRD:ramfree:AVERAGE \
		DEF:ramshared=$RRD:ramshared:AVERAGE \
		DEF:rambuffer=$RRD:rambuffer:AVERAGE \
		CDEF:pramtotal=ramtotal,1024,/,1024,/ \
		CDEF:pramfree=ramfree,1024,/,1024,/ \
		CDEF:pramshared=ramshared,1024,/,1024,/ \
		CDEF:prambuffer=rambuffer,1024,/,1024,/ \
		AREA:ramtotal$RAM_TOTAL:"Total\:\g" \
		GPRINT:pramtotal:LAST:" %.0lf MB" \
		AREA:ramfree$RAM_FREE:"Free\:\g" \
		GPRINT:pramfree:LAST:" %.0lf MB" \
		STACK:ramshared$RAM_SHARED:"Shared\:\g" \
		GPRINT:pramshared:LAST:" %.0lf MB" \
		STACK:rambuffer$RAM_BUFFER:"Buffer\:\g" \
		GPRINT:prambuffer:LAST:" %.0lf MB" \
		--title "$i memory usage (1 hour)" --vertical-label "memory"
	rrdtool graph "$i/ram-day.png" --start -86400 \
		--imgformat PNG \
		--base 1024 \
		DEF:ramtotal=$RRD:ramtotal:AVERAGE \
		DEF:ramfree=$RRD:ramfree:AVERAGE \
		DEF:ramshared=$RRD:ramshared:AVERAGE \
		DEF:rambuffer=$RRD:rambuffer:AVERAGE \
		CDEF:pramtotal=ramtotal,1024,/,1024,/ \
		CDEF:pramfree=ramfree,1024,/,1024,/ \
		CDEF:pramshared=ramshared,1024,/,1024,/ \
		CDEF:prambuffer=rambuffer,1024,/,1024,/ \
		AREA:ramtotal$RAM_TOTAL:"Total\:\g" \
		GPRINT:pramtotal:LAST:" %.0lf MB" \
		AREA:ramfree$RAM_FREE:"Free\:\g" \
		GPRINT:pramfree:LAST:" %.0lf MB" \
		STACK:ramshared$RAM_SHARED:"Shared\:\g" \
		GPRINT:pramshared:LAST:" %.0lf MB" \
		STACK:rambuffer$RAM_BUFFER:"Buffer\:\g" \
		GPRINT:prambuffer:LAST:" %.0lf MB" \
		--title "$i memory usage (1 day)" --vertical-label "memory"
	rrdtool graph "$i/ram-week.png" --start -604800 \
		--imgformat PNG \
		--base 1024 \
		DEF:ramtotal=$RRD:ramtotal:AVERAGE \
		DEF:ramfree=$RRD:ramfree:AVERAGE \
		DEF:ramshared=$RRD:ramshared:AVERAGE \
		DEF:rambuffer=$RRD:rambuffer:AVERAGE \
		CDEF:pramtotal=ramtotal,1024,/,1024,/ \
		CDEF:pramfree=ramfree,1024,/,1024,/ \
		CDEF:pramshared=ramshared,1024,/,1024,/ \
		CDEF:prambuffer=rambuffer,1024,/,1024,/ \
		AREA:ramtotal$RAM_TOTAL:"Total\:\g" \
		GPRINT:pramtotal:LAST:" %.0lf MB" \
		AREA:ramfree$RAM_FREE:"Free\:\g" \
		GPRINT:pramfree:LAST:" %.0lf MB" \
		STACK:ramshared$RAM_SHARED:"Shared\:\g" \
		GPRINT:pramshared:LAST:" %.0lf MB" \
		STACK:rambuffer$RAM_BUFFER:"Buffer\:\g" \
		GPRINT:prambuffer:LAST:" %.0lf MB" \
		--title "$i memory usage (1 week)" --vertical-label "memory"

	RRD="$i/swap.rrd"
	rrdtool graph "$i/swap-hour.png" --start -3600 \
		--imgformat PNG \
		--base 1024 \
		DEF:swaptotal=$RRD:swaptotal:AVERAGE \
		DEF:swapfree=$RRD:swapfree:AVERAGE \
		CDEF:pswaptotal=swaptotal,1024,/,1024,/ \
		CDEF:pswapfree=swapfree,1024,/,1024,/ \
		AREA:swaptotal$SWAP_TOTAL:"Total\:\g" \
		GPRINT:pswaptotal:LAST:" %.0lf MB" \
		AREA:swapfree$SWAP_FREE:"Free\:\g" \
		GPRINT:pswapfree:LAST:" %.0lf MB" \
		--title "$i swap usage (1 hour)" --vertical-label "swap"
	rrdtool graph "$i/swap-day.png" --start -86400 \
		--imgformat PNG \
		--base 1024 \
		DEF:swaptotal=$RRD:swaptotal:AVERAGE \
		DEF:swapfree=$RRD:swapfree:AVERAGE \
		CDEF:pswaptotal=swaptotal,1024,/,1024,/ \
		CDEF:pswapfree=swapfree,1024,/,1024,/ \
		AREA:swaptotal$SWAP_TOTAL:"Total\:\g" \
		GPRINT:pswaptotal:LAST:" %.0lf MB" \
		AREA:swapfree$SWAP_FREE:"Free\:\g" \
		GPRINT:pswapfree:LAST:" %.0lf MB" \
		--title "$i swap usage (1 day)" --vertical-label "swap"
	rrdtool graph "$i/swap-week.png" --start -604800 \
		--imgformat PNG \
		--base 1024 \
		DEF:swaptotal=$RRD:swaptotal:AVERAGE \
		DEF:swapfree=$RRD:swapfree:AVERAGE \
		CDEF:pswaptotal=swaptotal,1024,/,1024,/ \
		CDEF:pswapfree=swapfree,1024,/,1024,/ \
		AREA:swaptotal$SWAP_TOTAL:"Total\:\g" \
		GPRINT:pswaptotal:LAST:" %.0lf MB" \
		AREA:swapfree$SWAP_FREE:"Free\:\g" \
		GPRINT:pswapfree:LAST:" %.0lf MB" \
		AREA:swaptotal$SWAP_TOTAL:"Total" \
		AREA:swapfree$SWAP_FREE:"Free" \
		--title "$i swap usage (1 week)" --vertical-label "swap"

	RRD="$i/users.rrd"
	rrdtool graph "$i/users-hour.png" --start -3600 \
		--imgformat PNG \
		DEF:users=$RRD:users:AVERAGE \
		AREA:users$PROCS_AREA \
		LINE2:users$PROCS_LINE:"Logged users\:\g" \
		GPRINT:users:LAST:" %.0lf" \
		--title "$i logged users (1 hour)" --vertical-label "users"
	rrdtool graph "$i/users-day.png" --start -86400 \
		--imgformat PNG \
		DEF:users=$RRD:users:AVERAGE \
		AREA:users$PROCS_AREA \
		LINE2:users$PROCS_LINE:"Logged users\:\g" \
		GPRINT:users:LAST:" %.0lf" \
		--title "$i logged users (1 day)" --vertical-label "users"
	rrdtool graph "$i/users-week.png" --start -604800 \
		--imgformat PNG \
		DEF:users=$RRD:users:AVERAGE \
		AREA:users$PROCS_AREA \
		LINE2:users$PROCS_LINE:"Logged users\:\g" \
		GPRINT:users:LAST:" %.0lf" \
		--title "$i logged users (1 week)" --vertical-label "users"

	RRD="$i/procs.rrd"
	rrdtool graph "$i/procs-hour.png" --start -3600 \
		--imgformat PNG \
		DEF:procs=$RRD:procs:AVERAGE \
		AREA:procs$PROCS_AREA \
		LINE2:procs$PROCS_LINE:"Process count\:\g" \
		GPRINT:procs:LAST:" %.0lf" \
		--title "$i process count (1 hour)" --vertical-label "processes"
	rrdtool graph "$i/procs-day.png" --start -86400 \
		--imgformat PNG \
		DEF:procs=$RRD:procs:AVERAGE \
		AREA:procs$PROCS_AREA \
		LINE2:procs$PROCS_LINE:"Process count\:\g" \
		GPRINT:procs:LAST:" %.0lf" \
		--title "$i process count (1 day)" --vertical-label "processes"
	rrdtool graph "$i/procs-week.png" --start -604800 \
		--imgformat PNG \
		DEF:procs=$RRD:procs:AVERAGE \
		AREA:procs$PROCS_AREA \
		LINE2:procs$PROCS_LINE:"Process count\:\g" \
		GPRINT:procs:LAST:" %.0lf" \
		--title "$i process count (1 week)" --vertical-label "processes"

	RRD="$i/eth0.rrd"
	rrdtool graph "$i/eth0-hour.png" --start -3600 \
		--imgformat PNG \
		DEF:ifrxbytes=$RRD:ifrxbytes:AVERAGE \
		DEF:iftxbytes=$RRD:iftxbytes:AVERAGE \
		AREA:ifrxbytes$IF_RX_AREA \
		LINE2:ifrxbytes$IF_RX_LINE:"RX bytes\:\g" \
		GPRINT:ifrxbytes:LAST:" %.0lf" \
		LINE2:iftxbytes$IF_TX_LINE:"TX bytes\:\g" \
		GPRINT:iftxbytes:LAST:" %.0lf" \
		--title "$i network traffic (1 hour)" --vertical-label "bytes"
	rrdtool graph "$i/eth0-day.png" --start -86400 \
		--imgformat PNG \
		DEF:ifrxbytes=$RRD:ifrxbytes:AVERAGE \
		DEF:iftxbytes=$RRD:iftxbytes:AVERAGE \
		AREA:ifrxbytes$IF_RX_AREA \
		LINE2:ifrxbytes$IF_RX_LINE:"RX bytes\:\g" \
		GPRINT:ifrxbytes:LAST:" %.0lf" \
		LINE2:iftxbytes$IF_TX_LINE:"TX bytes\:\g" \
		GPRINT:iftxbytes:LAST:" %.0lf" \
		--title "$i network traffic (1 day)" --vertical-label "bytes"
	rrdtool graph "$i/eth0-week.png" --start -604800 \
		--imgformat PNG \
		DEF:ifrxbytes=$RRD:ifrxbytes:AVERAGE \
		DEF:iftxbytes=$RRD:iftxbytes:AVERAGE \
		AREA:ifrxbytes$IF_RX_AREA \
		LINE2:ifrxbytes$IF_RX_LINE:"RX bytes\:\g" \
		GPRINT:ifrxbytes:LAST:" %.0lf" \
		LINE2:iftxbytes$IF_TX_LINE:"TX bytes\:\g" \
		GPRINT:iftxbytes:LAST:" %.0lf" \
		--title "$i network traffic (1 week)" --vertical-label "bytes"
done

