check_sensors.sh 1.5 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465666768697071
  1. #!/bin/sh
  2. PROGNAME=$(basename "$0")
  3. PROGPATH=$(echo "$0" | sed -e 's,[\\/][^\\/][^\\/]*$,,')
  4. REVISION="@NP_VERSION@"
  5. PATH="@TRUSTED_PATH@"
  6. export PATH
  7. . "$PROGPATH"/utils.sh
  8. print_usage() {
  9. echo "Usage: $PROGNAME" [--ignore-fault]
  10. }
  11. print_help() {
  12. print_revision "$PROGNAME" "$REVISION"
  13. echo ""
  14. print_usage
  15. echo ""
  16. echo "This plugin checks hardware status using the lm_sensors package."
  17. echo ""
  18. support
  19. exit "$STATE_OK"
  20. }
  21. case "$1" in
  22. --help)
  23. print_help
  24. exit "$STATE_OK"
  25. ;;
  26. -h)
  27. print_help
  28. exit "$STATE_OK"
  29. ;;
  30. --version)
  31. print_revision "$PROGNAME" $REVISION
  32. exit "$STATE_OK"
  33. ;;
  34. -V)
  35. print_revision "$PROGNAME" $REVISION
  36. exit "$STATE_OK"
  37. ;;
  38. *)
  39. sensordata=$(sensors 2>&1)
  40. status=$?
  41. if [ "$status" == 127 ] ; then
  42. text="SENSORS UNKNOWN - command not found (did you install lmsensors?)"
  43. exit=$STATE_UNKNOWN
  44. elif [ "$status" != 0 ] ; then
  45. text="WARNING - sensors returned state $status"
  46. exit=$STATE_WARNING
  47. elif [ "$(echo "${sensordata}" | egrep ALARM > /dev/null)" ] ; then
  48. text="SENSOR CRITICAL - Sensor alarm detected!"
  49. exit=$STATE_CRITICAL
  50. elif [ \( "$(echo "${sensordata}" | egrep FAULT > /dev/null)" \) -a\
  51. \( "$(test "$1")" != "-i" -a "$1" != "--ignore-fault" \) ] ; then
  52. text="SENSOR UNKNOWN - Sensor reported fault"
  53. exit=$STATE_UNKNOWN
  54. else
  55. text="SENSORS OK"
  56. exit=$STATE_OK
  57. fi
  58. echo "$text"
  59. if test "$1" = "-v" -o "$1" = "--verbose"; then
  60. echo "${sensordata}"
  61. fi
  62. exit "$exit"
  63. ;;
  64. esac