746c18b06b
ok sthen@ (MAINTAINER)
95 lines
2.1 KiB
Bash
Executable File
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
|
|
|