munin-contrib/plugins/sensors/nvclock

60 lines
1.2 KiB
Bash
Executable File

#!/bin/sh
#
# plugin to monitor a nvidia graphic card temperature(s)
# dynamically shows the sensor name (gpu, board...)
# written by Dju
#
# Requirements :
# - a nvidia graphic card
# - a working nvclock binary
# - shell commands: grep, awk, sed, cut
# - root rights to execute nvclock. add in plugin-conf.d/munin-node
# [nvclock]
# user root
#
# Parameters : autoconf and config
#
# Version: 1.1
#
#%# family=auto
#%# capabilities=autoconf
NVCLOCK=`which nvclock`
if [ ! -z "$NVCLOCK" -a -f $NVCLOCK -a -x $NVCLOCK ]; then
NVCLOCK_OK=1
temps=$($NVCLOCK -i | grep 'temperature:' | awk '{print $1,$3}' | sed 's/ /@/g' | sed 's/C$//g')
else
NVCLOCK_OK=0
fi
if [ "$1" = "autoconf" ]; then
if [ $NVCLOCK_OK -eq 1 ]; then
echo yes
else
echo no
fi
exit 0
fi
if [ "$1" = "config" ]; then
echo 'graph_title Nvidia temperatures'
echo 'graph_args --base 1000 -l 0'
echo 'graph_vlabel temp in °C'
echo 'graph_category sensors'
if [ $NVCLOCK_OK -eq 1 ]; then
for temp in $temps; do
label=$(echo $temp | cut -d@ -f1)
echo "${label}.label ${label}"
done
fi
exit 0
fi
if [ $NVCLOCK_OK -eq 1 ]; then
for temp in $temps; do
label=$(echo $temp | cut -d@ -f1)
value=$(echo $temp | cut -d@ -f2)
echo "${label}.value ${value}"
done
fi