#! /bin/bash : << =cut =head1 NAME smart_array_system_temperature - Plugin to monitor temperature of HP Smart array. =head1 APPLICABLE SYSTEMS Only tested on HP Microserver Gen8 with Smart Array P222. Maybe works with other HP Prolant Raid cards. =head1 CONFIGURATION No need configuration =head1 NOTES Uses the command "hpacucli" (http://hwraid.le-vert.net/wiki/DebianPackages) =head1 AUTHOR Damien Broqua (https://framagit.org/dbroqua) =head1 LICENSE GPLv2 =head1 MAGIC MARKERS #%# family=auto #%# capabilities=autoconf =cut IFS=$'\n' # Function to list all slots getSlots () { list=`hpacucli ctrl all show|grep "Slot"|awk -F'Slot ' '{print $2}'|cut -d' ' -f1` return $list } # Function to get temperatures of one specified slot getTemperatures () { slot=$1 temps=`hpacucli ctrl slot=${slot} show|grep "Temperature"` for temp in ${temps[@]}; do id=`echo ${temp}|cut -d':' -f1| tr -d '[:space:]'` value=`echo ${temp}|cut -d':' -f2| tr -d '[:space:]'` label=`echo ${temp}|cut -d':' -f1` if [ "${2}" = "config" ]; then echo "${slot}${id}.label (slot ${slot}) ${label} " else echo ${slot}${id}.value ${value} fi done } # Config, set graph title if [ "${1}" = "config" ]; then echo "graph_title SMART Array system temperatures" echo "graph_vlabel Degrees celcius" echo "graph_category sensors" fi # Start script by getting list of slots getSlots slots=$? # For each slot, get temperatures for i in ${list[@]} ; do getTemperatures $i $1 done