dotfiles for servers
1#!/usr/bin/env sh
2
3USER=$(head -n 1 "${HOME}/.env")
4AUTHPASS=$(tail -n 1 "${HOME}/.env")
5RRDFILES="${HOME}/rrdtool"
6IMAGES="${HOME}/rrdimages"
7WATERMARK="moonshadow.dev"
8RRDTOOL="/usr/local/bin/rrdtool"
9UPTIME=$(cat /tmp/uptime.txt)
10NOW=$(date "+%Y-%m-%d %H:%M:%S %Z" | sed 's/:/\\:/g')
11
12if ! test -f "${RRDFILES}/cpu.rrd"; then
13 echo "Creating ${RRDFILES}/cpu.rrd"
14 ${RRDTOOL} create "${RRDFILES}"/cpu.rrd --step 300 DS:ds0:GAUGE:600:U:U RRA:MAX:0.5:1:20000
15fi
16
17CPU_LOAD=$(snmp walk -l authPriv -u "$USER" -A "$AUTHPASS" -X "$AUTHPASS" -a SHA-256 localhost hrProcessorLoad.1 | awk '{print $4}')
18
19${RRDTOOL} update "${RRDFILES}"/cpu.rrd N:"${CPU_LOAD}"
20
21${RRDTOOL} graph "${IMAGES}"/cpu.png \
22 --start -43200 \
23 --title "moonshadow.dev - CPU" \
24 --vertical-label "% CPU Used" \
25 --watermark "${WATERMARK}" \
26 DEF:CPU="${RRDFILES}"/cpu.rrd:ds0:AVERAGE \
27 AREA:CPU#FFCC00 \
28 LINE2:CPU#CC0033:"CPU" \
29 GPRINT:CPU:MAX:"Max\:%2.2lf %s" \
30 GPRINT:CPU:AVERAGE:"Average\:%2.2lf %s" \
31 GPRINT:CPU:LAST:" Current\:%2.2lf %s\n" \
32 COMMENT:"\\n" \
33 COMMENT:" SUM CPU Load / Active Cores = % CPU Used\n" \
34 COMMENT:" Up for ${UPTIME} at ${NOW}"
35