#!/bin/bash set -Cuo pipefail PATH=/bin:/usr/bin:/usr/local/bin:/sbin:/usr/sbin cd /var/www/html/rrd function pingrrd() { target=$1 var=ping$(echo $target | sed 's/\..*//') rrd="${var}.rrd" if ! test -f "$rrd" then rrdtool create "$rrd" --step 300 \ DS:${var}:GAUGE:600:U:U \ RRA:AVERAGE:0.5:1:576 \ RRA:AVERAGE:0.5:6:672 \ RRA:MAX:0.5:6:672 \ RRA:AVERAGE:0.5:288:797 fi val=$(ping6 -w4 -n -c3 "$target" | \ ruby -ne 'puts $1 if /mdev = ([0-9.]*)\//' || echo 'U') if [ "$val" = "" ]; then val="U" fi logger -p news.info -t pingrrd target=$target val=$val rrdupdate $rrd N:${val} rrdtool graph -o ${var}.png -t "$var" \ DEF:pt=${rrd}:${var}:AVERAGE CDEF:fail=pt,UN,500,* \ LINE1:pt#0088FF LINE2:fail#FF8800 > /dev/null rrdtool graph -o ${var}d10.png -t "$var" \ -e now -s end-864000s \ DEF:pt=${rrd}:${var}:AVERAGE CDEF:fail=pt,UN,500,* \ LINE1:pt#0088FF LINE2:fail#FF8800 > /dev/null } trap 'logger -p news.info -t pingrrd abend' EXIT pingrrd rv440n1.toyoda-eizi.net pingrrd cherrypie.toyoda-eizi.net trap ':' EXIT