Added check_rpi_temp.sh
This commit is contained in:
parent
ae8122a38c
commit
a02420a9e5
1 changed files with 96 additions and 0 deletions
96
check_rpi_temp.sh
Executable file
96
check_rpi_temp.sh
Executable file
|
@ -0,0 +1,96 @@
|
|||
#!/bin/bash
|
||||
#
|
||||
# Created by Jonny007-MKD 2020-10-03
|
||||
|
||||
echoerr() { echo "$@" 1>&2; }
|
||||
|
||||
WARN=50
|
||||
CRIT=70
|
||||
FAHRENHEIT=false
|
||||
DEBUG=false
|
||||
while [[ $# -gt 0 ]]; do
|
||||
case $1 in
|
||||
-w|--warn|--warning)
|
||||
case "$2" in
|
||||
''|*[!0-9]*) echoerr "Argument for \"$1\" has to be a number";;
|
||||
esac
|
||||
WARN=$2
|
||||
shift; shift
|
||||
;;
|
||||
-c|--crit|--critical)
|
||||
case "$2" in
|
||||
''|*[!0-9]*) echoerr "Argument for \"$1\" has to be a number";;
|
||||
esac
|
||||
CRIT=$2
|
||||
shift; shift
|
||||
;;
|
||||
-f|--fahrenheit)
|
||||
FAHRENHEIT=true
|
||||
shift
|
||||
;;
|
||||
-d|--debug)
|
||||
DEBUG=true
|
||||
shift
|
||||
;;
|
||||
-?|--help)
|
||||
echo "Check /proc/mdstat. Arguments:"
|
||||
echo "--warning $WARN: Temperature above which the result is warning"
|
||||
echo "--critical $CRIT: Temperature above which the result is critical"
|
||||
echo "--fahrenheit: All temperatures in Fahrenheit (°F)"
|
||||
exit 0
|
||||
;;
|
||||
esac
|
||||
shift
|
||||
done
|
||||
|
||||
if [ $CRIT -le $WARN ]; then
|
||||
echoerr "Critical threshold ($CRIT) has to be greater than Warning threshold ($WARN)"
|
||||
exit 1
|
||||
fi
|
||||
|
||||
|
||||
function log {
|
||||
if $DEBUG; then
|
||||
echo " > $@"
|
||||
fi
|
||||
}
|
||||
NL=$'\n'
|
||||
|
||||
|
||||
output=$(/opt/vc/bin/vcgencmd measure_temp)
|
||||
result=$?
|
||||
log vcgencmd: $result. $output
|
||||
if [ $result -ne 0 ]; then
|
||||
echoerr "vcgencmd returned $result"
|
||||
exit $result
|
||||
fi
|
||||
|
||||
temp=${output/temp=/}
|
||||
temp=${temp/\'C/}
|
||||
|
||||
unit="°C"
|
||||
if $FAHRENHEIT; then
|
||||
temp=$(bc <<< "scale=1; ($temp * 1.8) + 32")
|
||||
unit="°F"
|
||||
fi
|
||||
|
||||
|
||||
|
||||
c=$(bc <<< "$temp > $CRIT")
|
||||
w=$(bc <<< "$temp > $WARN")
|
||||
if [ $c -eq 1 ]; then
|
||||
result="CRITICAL"
|
||||
elif [ $w -eq 1 ]; then
|
||||
result="WARNING"
|
||||
else
|
||||
result="OK"
|
||||
fi
|
||||
echo "$result | 'temperature'=$temp;$unit;$WARN;$CRIT;-40;85"
|
||||
|
||||
|
||||
case $result in
|
||||
OK) exit 0;;
|
||||
WARNING) exit 1;;
|
||||
CRITICAL) exit 2;;
|
||||
esac
|
||||
|
Loading…
Reference in a new issue