80 lines
1.7 KiB
Bash
80 lines
1.7 KiB
Bash
#!/bin/bash
|
|
APP_PATH=$(dirname "$0") # relative
|
|
APP_PATH=$(cd "$APP_PATH" && pwd) # absolutized and normalized
|
|
if [[ -z "$APP_PATH" ]] ; then
|
|
# error; for some reason, the path is not accessible
|
|
# to the script (e.g. permissions re-evaled after suid)
|
|
APP_PATH="/etc/cai-watchdog"
|
|
fi
|
|
|
|
RCPT=$1
|
|
SERVICE=$2
|
|
PROCESS_OR_URI=$3
|
|
STATE=$4
|
|
|
|
case $4 in
|
|
online)
|
|
SERVICE_OR_PROCESS="Служба"
|
|
STATE_STR="доступна"
|
|
ICON=${ICON_OK}
|
|
;;
|
|
running)
|
|
SERVICE_OR_PROCESS="Процесс"
|
|
STATE_STR="запущен"
|
|
ICON=${ICON_OK}
|
|
;;
|
|
offline)
|
|
SERVICE_OR_PROCESS="Служба"
|
|
STATE_STR="недоступна"
|
|
ICON=${ICON_FAIL}
|
|
;;
|
|
stopped)
|
|
SERVICE_OR_PROCESS="Процесс"
|
|
STATE_STR="остановлен"
|
|
ICON=${ICON_FAIL}
|
|
;;
|
|
esac
|
|
|
|
MESSAGE_TEXT="${ICON} ${SERVICE_OR_PROCESS} ${SERVICE} (${PROCESS_OR_URI}) ${STATE_STR}"
|
|
|
|
|
|
#subj=$2
|
|
#message=$3
|
|
|
|
ARGS=$(xargs echo $(perl -anle 's/^[^:]+//g && s/:\s+//g && print' ${APP_PATH}/email.conf) < /dev/null)
|
|
set -- $ARGS "$@";
|
|
|
|
declare -A email;
|
|
email['user']=$1
|
|
email['pass']=$2
|
|
email['smtp']=$3
|
|
email['port']=$4
|
|
|
|
email_content='From: "Watchdog" <'"${email['user']}"'>
|
|
To: "Subscriber" <'"${RCPT}"'>
|
|
Subject: '"${MESSAGE_TEXT}"'
|
|
Date: '"$(date)"'
|
|
|
|
'"${MESSAGE_TEXT}"'
|
|
-----
|
|
'"${HOSTNAME}"'
|
|
';
|
|
|
|
|
|
echo "$email_content" | curl -s \ # -vvv \
|
|
--url "smtps://${email['smtp']}:${email['port']}" \
|
|
--user "${email['user']}:${email['pass']}" \
|
|
--mail-from "${email['user']}" \
|
|
--mail-rcpt "${RCPT}" \
|
|
--upload-file - \
|
|
-T -
|
|
|
|
|
|
if [[ $? == 0 ]]; then
|
|
echo;
|
|
echo 'okay';
|
|
else
|
|
echo "curl error code $?";
|
|
man curl | grep "^ \+$? \+"
|
|
fi
|