Merged in elyrith/check_temp (pull request #3)

This commit is contained in:
Jack-Benny Persson 2012-12-01 03:09:30 +01:00
commit 95a7d33142

View File

@ -24,12 +24,18 @@
# # # #
# Nagios plugin to monitor CPU and M/B temperature with sensors. # # Nagios plugin to monitor CPU and M/B temperature with sensors. #
# Written in Bash (and uses sed & awk). # # Written in Bash (and uses sed & awk). #
# Version 0.2: Line 98, fixed the missing "-n" option (Thanks to Chad who # # Version 0.2: Line 103, fixed the missing "-n" option (Thanks to Chad who #
# pointed this out for me). Also added a "shopt -s extglob". (Thx to Chad) # # pointed this out for me). Also added a "shopt -s extglob". (Thx to Chad) #
# Version 0.5: Line 162, fixed a typo (EXIT_UNKNOWN to STATE_UNKNOWN) # # Version 0.5: Line 168, fixed a typo (EXIT_UNKNOWN to STATE_UNKNOWN) #
# Version 0.7: #
# Line 193, modified sensor parsing to cut after the first '+' since all #
# positive temperatures are preceded by a '+' #
# Line 211, reduced "verbosity" needed to see verbose info (was 2: -v -v) #
# Line 229-232, now checks to see if no sensor data was found and #
# exits with STATE_UNKNOWN #
############################################################################### ###############################################################################
VERSION="Version 0.6" VERSION="Version 0.7"
AUTHOR="(c) 2011 Jack-Benny Persson (jack-benny@cyberinfo.se)" AUTHOR="(c) 2011 Jack-Benny Persson (jack-benny@cyberinfo.se)"
# Sensor program # Sensor program
@ -56,7 +62,7 @@ print_help()
{ {
print_version print_version
printf "$AUTHOR\n" printf "$AUTHOR\n"
printf "Monitor temperatur with the use of sensors\n" printf "Monitor temperature with the use of sensors\n"
/bin/cat <<EOT /bin/cat <<EOT
Options: Options:
@ -184,10 +190,10 @@ fi
#Get the temperature #Get the temperature
TEMP=`${SENSORPROG} | grep "$sensor Temp" | awk '{print $3}' | cut -c2-3` TEMP=`${SENSORPROG} | grep "$sensor" | cut -d+ -f2 | cut -c1-2 `
# Check if the tresholds has been set correctly # Check if the thresholds have been set correctly
if [[ -z "$thresh_warn" || -z "$thresh_crit" ]]; then if [[ -z "$thresh_warn" || -z "$thresh_crit" ]]; then
# One or both thresholds were not specified # One or both thresholds were not specified
printf "\nThreshold not set" printf "\nThreshold not set"
@ -202,7 +208,7 @@ fi
# Verbose output # Verbose output
if [[ "$verbosity" -ge 2 ]]; then if [[ "$verbosity" -ge 1 ]]; then
/bin/cat <<__EOT /bin/cat <<__EOT
Debugging information: Debugging information:
Warning threshold: $thresh_warn Warning threshold: $thresh_warn
@ -211,7 +217,7 @@ Debugging information:
Current $sensor temperature: $TEMP Current $sensor temperature: $TEMP
__EOT __EOT
printf "\n Temperature lines directly from sensors:\n" printf "\n Temperature lines directly from sensors:\n"
${SENSORPROG} | grep "Temp" ${SENSORPROG}
printf "\n\n" printf "\n\n"
fi fi
@ -220,7 +226,12 @@ PERFDATA=`${SENSORPROG} | grep "$sensor"`
# And finally check the temperature against our thresholds # And finally check the temperature against our thresholds
if [[ "$TEMP" -gt "$thresh_crit" ]]; then if [[ "$TEMP" != +([0-9]) ]]; then
# Temperature not found for that sensor
printf "No data found for that sensor ($sensor)\n"
exit $STATE_UNKNOWN
elif [[ "$TEMP" -gt "$thresh_crit" ]]; then
# Temperature is above critical threshold # Temperature is above critical threshold
echo "$sensor CRITICAL - Temperature is $TEMP | $PERFDATA" echo "$sensor CRITICAL - Temperature is $TEMP | $PERFDATA"
exit $STATE_CRITICAL exit $STATE_CRITICAL