#!/usr/bin/env sh USER=$(head -n 1 "${HOME}/.env") AUTHPASS=$(tail -n 1 "${HOME}/.env") INTERFACE="1" RRDFILES="${HOME}/rrdtool" IMAGES="${HOME}/rrdimages" WATERMARK="moonshadow.dev" RRDTOOL="/usr/local/bin/rrdtool" UPTIME=$(cat /tmp/uptime.txt) NOW=$(date "+%Y-%m-%d %H:%M:%S %Z" | sed 's/:/\\:/g') if ! test -f "${RRDFILES}/${INTERFACE}.rrd"; then echo "Creating ${RRDFILES}/${INTERFACE}.rrd" ${RRDTOOL} create "${RRDFILES}/${INTERFACE}.rrd" \ --step 300 \ DS:ds0:COUNTER:600:0:1250000000 \ DS:ds1:COUNTER:600:0:1250000000 \ RRA:AVERAGE:0.5:1:600 \ RRA:AVERAGE:0.5:6:700 \ RRA:AVERAGE:0.5:24:775 \ RRA:AVERAGE:0.5:288:797 \ RRA:MAX:0.5:1:600 \ RRA:MAX:0.5:6:700 \ RRA:MAX:0.5:24:775 \ RRA:MAX:0.5:288:797 fi IN=$(snmp get -l authPriv -u "$USER" -A "$AUTHPASS" -X "$AUTHPASS" -a SHA-256 localhost ifInOctets.${INTERFACE} | awk '{print $4}') OUT=$(snmp get -l authPriv -u "$USER" -A "$AUTHPASS" -X "$AUTHPASS" -a SHA-256 localhost ifOutOctets.${INTERFACE} | awk '{print $4}') DESCR=$(snmp get -l authPriv -u "$USER" -A "$AUTHPASS" -X "$AUTHPASS" -a SHA-256 localhost ifDescr.${INTERFACE} | awk '{print $4}') ${RRDTOOL} update "${RRDFILES}/${INTERFACE}.rrd" N:"${IN}":"${OUT}" ${RRDTOOL} graph "${IMAGES}/${INTERFACE}.png" \ --start -43200 \ --title "moonshadow.dev - ${DESCR}" \ --vertical-label "Bits per Second" \ --watermark "${WATERMARK}" \ DEF:IN="${RRDFILES}/${INTERFACE}.rrd":ds0:AVERAGE \ DEF:OUT="${RRDFILES}/${INTERFACE}.rrd":ds1:AVERAGE \ CDEF:IN_CDEF="IN,8,*" \ CDEF:OUT_CDEF="OUT,8,*" \ AREA:IN_CDEF#00FF00:"In " \ GPRINT:IN_CDEF:MAX:"Max\:%5.2lf %s" \ GPRINT:IN_CDEF:AVERAGE:"Average\:%5.2lf %s" \ GPRINT:IN_CDEF:LAST:" Current\:%5.2lf %s\n" \ LINE2:OUT_CDEF#0000FF:"Out" \ GPRINT:OUT_CDEF:MAX:"Max\:%5.2lf %s" \ GPRINT:OUT_CDEF:AVERAGE:"Average\:%5.2lf %s" \ GPRINT:OUT_CDEF:LAST:" Current\:%5.2lf %s\n" \ COMMENT:"\\n" \ COMMENT:" Up for ${UPTIME} at ${NOW}"