mirror of
https://github.com/larsen0815/check_rasp_temp.git
synced 2024-11-21 18:03:48 +01:00
first version
This commit is contained in:
parent
79c0bb0d6e
commit
90461829e3
94
check_rasp_temp
Normal file
94
check_rasp_temp
Normal file
@ -0,0 +1,94 @@
|
||||
#!/bin/bash
|
||||
# Adapted from check_nagios_latency
|
||||
|
||||
VCGENCMD="/opt/vc/bin/vcgencmd"
|
||||
|
||||
# Prints usage information
|
||||
usage() {
|
||||
|
||||
if [ -n "$1" ] ; then
|
||||
echo "Error: $1" 1>&2
|
||||
fi
|
||||
|
||||
echo ""
|
||||
echo "Usage: check_rasp_temp [-h?] -w warning -c critical"
|
||||
echo ""
|
||||
echo " -w warning threshold"
|
||||
echo " -c critical threshold"
|
||||
echo " -h, -? this help message"
|
||||
echo ""
|
||||
|
||||
exit 3
|
||||
}
|
||||
|
||||
|
||||
# Checks if a given program is available and executable
|
||||
check_prog() {
|
||||
|
||||
if [ -z "$PROG" ] ; then
|
||||
PROG=`which $1`
|
||||
fi
|
||||
|
||||
if [ -z "$PROG" ] ; then
|
||||
echo "TEMPERATURE UNKNOWN - cannot find $1"
|
||||
exit 3
|
||||
fi
|
||||
|
||||
PROG=""
|
||||
}
|
||||
|
||||
|
||||
# Main
|
||||
# check progs
|
||||
check_prog awk
|
||||
check_prog bc
|
||||
|
||||
|
||||
# process command line options
|
||||
while getopts "h?c:w:" opt; do
|
||||
case $opt in
|
||||
c ) CRITICAL=$OPTARG; ;;
|
||||
h | \? ) usage ; exit 3; ;;
|
||||
w ) WARNING=$OPTARG; ;;
|
||||
esac
|
||||
done
|
||||
shift $(($OPTIND - 1))
|
||||
|
||||
|
||||
# Check options
|
||||
if [ -z "${WARNING}" ] ; then
|
||||
usage "No warning threshold specified"
|
||||
fi
|
||||
if [ -z "${CRITICAL}" ] ; then
|
||||
usage "No critical threshold specified"
|
||||
fi
|
||||
|
||||
# Check number formats
|
||||
if ! echo $WARNING | grep -qE '^[0-9]+(\.[0-9]+)?$' ; then
|
||||
echo "TEMPERATURE UNKOWN - Wrong number: $WARNING"
|
||||
exit 3
|
||||
fi
|
||||
if ! echo $CRITICAL | grep -qE '^[0-9]+(\.[0-9]+)?$' ; then
|
||||
echo "TEMPERATURE UNKOWN - Wrong number: $CRITICAL"
|
||||
exit 3
|
||||
fi
|
||||
|
||||
|
||||
# Perform the checks
|
||||
TEMP=`$VCGENCMD measure_temp | awk -F"=" '{print $2}' | awk -F"'" '{print $1}'`
|
||||
PERF="temp=${TEMP};${WARNING};${CRITICAL};;"
|
||||
|
||||
COMPARISON=`echo "if($TEMP>=$CRITICAL) 1 else 0;" | bc`
|
||||
if [ $COMPARISON -eq 1 ] ; then
|
||||
echo "TEMPERATURE CRITICAL: $TEMP | $PERF"
|
||||
exit 2
|
||||
fi
|
||||
|
||||
COMPARISON=`echo "if($TEMP>=$WARNING) 1 else 0;" | bc`
|
||||
if [ $COMPARISON -eq 1 ] ; then
|
||||
echo "TEMPERATURE WARNING: $TEMP | $PERF"
|
||||
exit 1
|
||||
fi
|
||||
|
||||
echo "TEMPERATURE OK: $TEMP | $PERF"
|
||||
exit 0;
|
Loading…
Reference in New Issue
Block a user