dotfiles for servers
1#!/usr/bin/env sh
2
3USER=$(head -n 1 "${HOME}/.env")
4AUTHPASS=$(tail -n 1 "${HOME}/.env")
5INTERFACE="1"
6RRDFILES="${HOME}/rrdtool"
7IMAGES="${HOME}/rrdimages"
8WATERMARK="moonshadow.dev"
9RRDTOOL="/usr/local/bin/rrdtool"
10UPTIME=$(cat /tmp/uptime.txt)
11NOW=$(date "+%Y-%m-%d %H:%M:%S %Z" | sed 's/:/\\:/g')
12
13if ! test -f "${RRDFILES}/${INTERFACE}.rrd"; then
14 echo "Creating ${RRDFILES}/${INTERFACE}.rrd"
15 ${RRDTOOL} create "${RRDFILES}/${INTERFACE}.rrd" \
16 --step 300 \
17 DS:ds0:COUNTER:600:0:1250000000 \
18 DS:ds1:COUNTER:600:0:1250000000 \
19 RRA:AVERAGE:0.5:1:600 \
20 RRA:AVERAGE:0.5:6:700 \
21 RRA:AVERAGE:0.5:24:775 \
22 RRA:AVERAGE:0.5:288:797 \
23 RRA:MAX:0.5:1:600 \
24 RRA:MAX:0.5:6:700 \
25 RRA:MAX:0.5:24:775 \
26 RRA:MAX:0.5:288:797
27fi
28
29IN=$(snmp get -l authPriv -u "$USER" -A "$AUTHPASS" -X "$AUTHPASS" -a SHA-256 localhost ifInOctets.${INTERFACE} | awk '{print $4}')
30OUT=$(snmp get -l authPriv -u "$USER" -A "$AUTHPASS" -X "$AUTHPASS" -a SHA-256 localhost ifOutOctets.${INTERFACE} | awk '{print $4}')
31DESCR=$(snmp get -l authPriv -u "$USER" -A "$AUTHPASS" -X "$AUTHPASS" -a SHA-256 localhost ifDescr.${INTERFACE} | awk '{print $4}')
32
33${RRDTOOL} update "${RRDFILES}/${INTERFACE}.rrd" N:"${IN}":"${OUT}"
34
35${RRDTOOL} graph "${IMAGES}/${INTERFACE}.png" \
36 --start -43200 \
37 --title "moonshadow.dev - ${DESCR}" \
38 --vertical-label "Bits per Second" \
39 --watermark "${WATERMARK}" \
40 DEF:IN="${RRDFILES}/${INTERFACE}.rrd":ds0:AVERAGE \
41 DEF:OUT="${RRDFILES}/${INTERFACE}.rrd":ds1:AVERAGE \
42 CDEF:IN_CDEF="IN,8,*" \
43 CDEF:OUT_CDEF="OUT,8,*" \
44 AREA:IN_CDEF#00FF00:"In " \
45 GPRINT:IN_CDEF:MAX:"Max\:%5.2lf %s" \
46 GPRINT:IN_CDEF:AVERAGE:"Average\:%5.2lf %s" \
47 GPRINT:IN_CDEF:LAST:" Current\:%5.2lf %s\n" \
48 LINE2:OUT_CDEF#0000FF:"Out" \
49 GPRINT:OUT_CDEF:MAX:"Max\:%5.2lf %s" \
50 GPRINT:OUT_CDEF:AVERAGE:"Average\:%5.2lf %s" \
51 GPRINT:OUT_CDEF:LAST:" Current\:%5.2lf %s\n" \
52 COMMENT:"\\n" \
53 COMMENT:" Up for ${UPTIME} at ${NOW}"