mirror of
https://gitdl.cn/https://github.com/chakralinux/core.git
synced 2025-02-04 23:57:14 +08:00
47 lines
831 B
Plaintext
47 lines
831 B
Plaintext
|
#!/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
|
||
|
|
||
|
[ -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 &
|