4
0

check_sensors.sh 1.6 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465666768697071727374757677787980
  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. ignorefault=0
  40. if test "$1" = "-i" -o "$1" = "--ignore-fault"; then
  41. ignorefault=1
  42. fi
  43. sensordata=$(sensors 2>&1)
  44. status=$?
  45. # Set a default
  46. text="SENSOR UNKNOWN"
  47. exit=$STATE_UNKNOWN
  48. if [ $status -eq 127 ] ; then
  49. text="SENSORS UNKNOWN - command not found (did you install lmsensors?)"
  50. exit=$STATE_UNKNOWN
  51. elif [ "$status" != 0 ] ; then
  52. text="WARNING - sensors returned state $status"
  53. exit=$STATE_WARNING
  54. elif echo "${sensordata}" | egrep -q ALARM >/dev/null ; then
  55. text="SENSOR CRITICAL - Sensor alarm detected!"
  56. exit=$STATE_CRITICAL
  57. elif [ $ignorefault -eq 0 ] && echo "${sensordata}" | egrep -q FAULT >/dev/null; then
  58. text="SENSOR UNKNOWN - Sensor reported fault"
  59. exit=$STATE_UNKNOWN
  60. else
  61. text="SENSORS OK"
  62. exit=$STATE_OK
  63. fi
  64. echo "$text"
  65. if test "$1" = "-v" -o "$1" = "--verbose"; then
  66. echo "${sensordata}"
  67. fi
  68. exit $exit
  69. ;;
  70. esac