- Repository
- Munin (master)
- Last change
- 2018-05-21
- Graph Categories
- Family
- contrib
- Capabilities
- Language
- Shell
- Authors
nutups_
Sadly there is no documentation for this plugin.
#!/bin/sh
#
# Plugin to monitor various statistics exported by a UPS.
#
# Copyright 2005 Andras Korn
#
# License: GPL
#
# usage: nutups_upsid_function
#
#%# family=contrib
#%# capabilities=autoconf suggest
UPS=$(basename "$0" | cut -d_ -f2)
FUNCTION=$(basename "$0" | cut -d_ -f3)
UPSC=$(command -v upsc)
if [ "$1" = "autoconf" ]; then
[ -x "$UPSC" ] && [ -r /etc/nut/ups.conf ] && echo yes && exit 0
echo "no (upsc or /etc/nut/ups.conf not found)"
exit 0
fi
if [ "$1" = "suggest" ]; then
grep '^\[[^]]*\]$' /etc/nut/ups.conf \
| tr -d '][' \
| while read -r ups; do
for i in voltages freq charge current; do
echo "${ups}_${i}"
done
done
fi
voltages() {
if [ "$1" = "config" ]; then
echo "graph_title $UPS voltages"
echo "graph_args --base 1000 -l 0"
echo "graph_vlabel Volt"
for i in battery nominal input output; do
echo "${i}.label $i"
echo "${i}.type GAUGE"
echo "${i}.max 1000"
echo "${i}.min 0"
done
else
"$UPSC" "$UPS" | sed -n '/^[^:]*volt/{
s/://
/nominal/s/.* /nominal.value /
/voltage/s/\.[^ ]*/.value/
p
}'
fi
}
charge() {
if [ "$1" = "config" ]; then
echo "graph_title $UPS charge"
echo "graph_args --base 1000 -l 0"
echo "graph_vlabel %"
for i in charge low load; do
echo "${i}.label $i"
echo "${i}.type GAUGE"
echo "${i}.max 100"
echo "${i}.min 0"
done
else
"$UPSC" "$UPS" | sed -n '/^[^:]*charge/{
s/^[^:]*\.//g
s/:/.value/
p
}
/load/{
s/.*:/load.value/
p
}'
fi
}
frequency() {
if [ "$1" = "config" ]; then
echo "graph_title $UPS AC frequency"
echo "graph_args --base 1000 -l 0"
echo "graph_vlabel frequency 1/s"
echo "inputfreq.label Input AC frequency"
echo "inputfreq.type GAUGE"
echo "inputfreq.max 100"
echo "inputfreq.min 5"
echo "outputfreq.label Output AC frequency"
echo "outputfreq.type GAUGE"
echo "outputfreq.max 100"
echo "outputfreq.min 5"
else
"$UPSC" "$UPS" | sed -n '/^[^:]*\(input\|output\)\.frequency:/{s/.*\(input\|output\).*:/\1freq.value/;p}'
fi
}
current() {
if [ "$1" = "config" ]; then
echo "graph_title $UPS output current"
echo "graph_args --base 1000 -l 0"
echo "graph_vlabel Amper"
echo "current.label out-current"
echo "current.type GAUGE"
echo "current.max 100"
echo "current.min 0"
else
"$UPSC" "$UPS" | sed -n '/^[^:]*current/{s/.*:/current.value/;p}'
fi
}
[ "$1" = "config" ] && echo "graph_category sensors"
case "$FUNCTION" in
voltages)
voltages "$1"
;;
charge)
charge "$1"
;;
freq)
frequency "$1"
;;
current)
current "$1"
;;
esac