Alexander I. Chebykin bf96109742 Web-checks now runs in separate thread. Some fixes in scripts.
Web-checks now runs in separate thread. Some fixes in scripts.
2022-11-04 01:07:07 +03:00

82 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
source ${APP_PATH}/inc-icons
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