#!/bin/bash # # /usr/bin/healthd # . /etc/healthd.conf 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 case "${ALARM_RESET}" in yes) /usr/bin/sensors > /dev/null ;; no) true ;; esac [ -n "${cmd}" ] && [ -n "$( which -- "${cmd%% *}" )" ] || \ [ -n "${addr}" ] || exit 1 [ "${slp}" -ge 2 ] || slp=600 while true ; do sleep 15 message="$( $sensors )" case "$message" in '' ) message='Could not get any sensor values !' ;; *ALARM* ) : ;; * ) message='' ;; esac if [ -n "$message" ]; then if [ -n "${addr}" ]; then echo "$message" | mail -s \ "Sensors ALARM detected at host: $( hostname )" \ "${addr}" fi [ -z "${cmd}" ] || ${cmd} & sleep ${slp} fi done &