66 lines
1.8 KiB
Bash
66 lines
1.8 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
|
|
|
|
SCRIPT_NAME=$0
|
|
SERVICE=$1
|
|
PROCESS_OR_URI=$2
|
|
STATE=$3
|
|
|
|
case $3 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}"
|
|
|
|
if [ "$#" -ne 3 ]; then
|
|
echo "Вы должны передать 3 аргумента - название службы, uri или название процесса и статус. Аргументы с пробелами требуется взять в кавычки"
|
|
exit 0
|
|
fi
|
|
|
|
ARGS=$(xargs echo $(perl -anle 's/^[^:]+//g && s/:\s+//g && print' ${APP_PATH}/telegram.conf) < /dev/null)
|
|
set -- $ARGS "$@";
|
|
|
|
GROUP_ID=$1
|
|
BOT_TOKEN=$2
|
|
|
|
# this 3 checks (if) are not necessary but should be convenient
|
|
if [ "${MESSAGE_TEXT}" == "-h" ]; then
|
|
echo "Usage: `basename ${SCRIPT_NAME}` \"text message\""
|
|
exit 0
|
|
fi
|
|
|
|
if [ -z "${MESSAGE_TEXT}" ]
|
|
then
|
|
echo "Add message text as second arguments"
|
|
exit 0
|
|
fi
|
|
|
|
curl -s --data "text=${MESSAGE_TEXT}" --data "chat_id=$GROUP_ID" 'https://api.telegram.org/bot'$BOT_TOKEN'/sendMessage' > /dev/null
|