openbsd-ports/net/munin/files/sensors_
2010-10-07 11:01:06 +00:00

95 lines
2.1 KiB
Bash
Executable File

#!/bin/sh
#
# $OpenBSD: sensors_,v 1.2 2010/10/07 11:01:06 jasper Exp $
#
# Script to monitor OpenBSD sensors
# (c) 2007 Michael Knudsen <mk@openbsd.org>
#
# Invoke as "volt", "temp", "fan" or "humidity" based on what is being monitored.
# Parameters understood:
#
# config (required)
# autoconf (optional - used by munin-config)
# Magic markers (optional - used by munin-config and installation
# scripts):
#
#%# family=auto
#%# capabilities=autoconf suggest
mode=$(basename $0 | sed 's/sensors_//')
if [ "$1" = "autoconf" ]; then
if [ "$(uname -s)" = "OpenBSD" ]; then
echo yes
exit 0
else
echo no
exit 1
fi
fi
if [ "$1" = "suggest" ]; then
sysctl hw.sensors | awk '
/.temp/ { temp=1; }
/.fan/ { fan=1; }
/.volt/ { volt=1; }
/.humidity/ { humidity=1; }
END {
if (temp) {
print "temp";
}
if (fan) {
print "fan";
}
if (volt) {
print "volt";
}
if (humidity) {
print "humidity";
}
}'
exit 0
fi
if [ "$mode" != "volt" -a "$mode" != "temp" -a "$mode" != "fan" -a "$mode" != "humidity" ]; then
# error: invoke as "temp" "volt" "fan" or "humidity"
exit 1
fi
if [ "$1" = "config" ]; then
echo 'graph_args --base 1000'
if [ "$mode" = "temp" ]; then
echo 'graph_title Temperature sensor values'
echo 'graph_vlabel degC'
elif [ "$mode" = "volt" ]; then
echo 'graph_title Voltage sensor values'
echo 'graph_vlabel V'
elif [ "$mode" = "fan" ]; then
echo 'graph_title Fan speed sensor values'
echo 'graph_vlabel RPM'
elif [ "$mode" = "humidity" ]; then
echo 'graph_title Relative Humidity sensor values (in %)'
echo 'graph_args --upper-limit 100 -l 0'
echo 'graph_vlabel %'
echo 'graph_scale no'
fi
echo 'graph_category system'
sysctl hw.sensors | cut -b 12- | fgrep $mode | while read s; do
name=$(echo $s | cut -d= -f1 | sed 's/\./_/g')
echo "$name.label $name"
done
exit 0
fi
sysctl hw.sensors | cut -b 12- | fgrep $mode | while read s; do
name=$(echo $s | cut -d= -f1 | sed 's/\./_/g')
value=$(echo $s | cut -d= -f2 | cut -d' ' -f1 | sed -e 's,\%$,,g')
echo "$name.value $value"
done