4
0

check_sensors.sh 1.5 KB

12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364656667686970717273
  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 -eq 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 -q ALARM > /dev/null ; then
  48. text="SENSOR CRITICAL - Sensor alarm detected!"
  49. exit=$STATE_CRITICAL
  50. elif echo "${sensordata}" | egrep -q FAULT > /dev/null -a; then
  51. if [ "$(test "$1")" != "-i" -a \
  52. "$1" != "--ignore-fault" ] ; then
  53. text="SENSOR UNKNOWN - Sensor reported fault"
  54. exit=$STATE_UNKNOWN
  55. fi
  56. else
  57. text="SENSORS OK"
  58. exit=$STATE_OK
  59. fi
  60. echo "$text"
  61. if test "$1" = "-v" -o "$1" = "--verbose"; then
  62. echo "${sensordata}"
  63. fi
  64. exit "$exit"
  65. ;;
  66. esac