78 lines
No EOL
1.5 KiB
Bash
Executable file
78 lines
No EOL
1.5 KiB
Bash
Executable file
#! /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 |