#!/bin/bash # # /usr/sbin/healthd # . /etc/conf.d/healthd cmd="${ALARM_CMD}" addr="${ADMIN_EMAIL}" slp="${ALARM_SLEEP}" sensors="/usr/bin/sensors" while [ $# -gt 0 ] do case "${1}" in -c ) cmd="${2}"; shift 2 ;; -m ) addr="${2}"; shift 2 ;; -s ) slp="${2}"; shift 2 ;; * ) shift 1 ;; esac done if ! which -- "${cmd%% *}" || [ -z "${addr}" ] then exit 1 fi [ "${slp}" -ge 2 ] || slp=600 while : do sleep 15 message="$( $sensors )" case "$message" in '' ) message='Could not get any sensor values !' ;; *ALARM* ) : ;; * ) message='' ;; esac if [ -n "$message" ]; then echo "$message" | mail -s \ "Sensors ALARM detected at host: $( hostname )" \ "${addr}" ${cmd} & sleep ${slp} fi done