check_sensors.sh 1.4 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465666768697071
  1. #!/bin/sh
  2. PATH="@TRUSTED_PATH@"
  3. export PATH
  4. PROGNAME=`basename $0`
  5. PROGPATH=`echo $0 | sed -e 's,[\\/][^\\/][^\\/]*$,,'`
  6. REVISION="@NP_VERSION@"
  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 test ${status} -eq 127; then
  42. text="SENSORS UNKNOWN - command not found (did you install lmsensors?)"
  43. exit=$STATE_UNKNOWN
  44. elif test ${status} -ne 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 \
  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