#!@@GOODSH@@ # -*- sh -*- # # Copyright (c) 2008 Dag-Erling Coïdan Smørgrav # All rights reserved. # # Redistribution and use in source and binary forms, with or without # modification, are permitted provided that the following conditions # are met: # 1. Redistributions of source code must retain the above copyright # notice, this list of conditions and the following disclaimer # in this position and unchanged. # 2. Redistributions in binary form must reproduce the above copyright # notice, this list of conditions and the following disclaimer in the # documentation and/or other materials provided with the distribution. # # THIS SOFTWARE IS PROVIDED BY THE AUTHOR AND CONTRIBUTORS ``AS IS'' AND # ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE # IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE # ARE DISCLAIMED. IN NO EVENT SHALL THE AUTHOR OR CONTRIBUTORS BE LIABLE # FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL # DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS # OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) # HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT # LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY # OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF # SUCH DAMAGE. # # This plugin's functionality has been replaced by the dev_cpu_ plugin. #%# family=legacy # Munin plugin for CPU temperature on CPUs supported by FreeBSD's # coretemp driver (includes all Intel Core and Core 2 CPUs) die() { echo "$@" 1>&2 exit 1 } cpus() { sysctl -N dev.cpu | awk -F. '$4 == "temperature" { print $3 }' } reqcpus() { if [ -z "$cpus" ] ; then die "No supported CPUs" fi } autoconf() { if [ -n "$cpus" ] ; then echo "yes" else echo "no" fi } config() { reqcpus echo "graph_title CPU Core Temperature" echo -n "graph_order" for cpu in $cpus ; do echo -n " CPU$cpu" done echo "" echo "graph_category sensors" echo "graph_vlabel Core temperature in °C" echo "graph_scale no" for cpu in $cpus ; do echo "CPU$cpu.label CPU $cpu" done } get() { reqcpus for cpu in $cpus ; do echo -n "CPU$cpu.value " sysctl -n dev.cpu.$cpu.temperature | tr -d C done } self=$(basename $0) cpus=$(cpus) case "$*" in autoconf) autoconf ;; config) config ;; "") get ;; *) die "usage: $self [autoconf|config]" ;; esac