blob: b1e2fd69992673225fdcd3b85935d9ea63a85a50 (
plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
|
#!/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 &
|