- Работа
- Linux
- Monitoring
- Отправка уведомлений в telegram
Отправка уведомлений в telegram
Создайте файл /usr/local/bin/send_notify.sh
. Дайте на него права 755.
#!/bin/bash
TELEGRAM_CHAT_ID=-1111111
TELEGRAM_API_KEY=22222:33333
TEXT="$(cat)"
if [[ "${TEXT}" == "" ]]; then exit; fi
# Экранируем специальные символы.
TEXT=`echo "$TEXT" | sed 's/\&/\&/g' | sed 's/</\</g' | sed 's/>/\>/g'`
DESC=""
FILE_OPT=""
if [ "$1" != "" ]; then
if [ "$1" == "-f" ]; then
if [ "$2" == "" ]; then
echo Write file name after option \"-f\"
else
if [ -f "$2" ]; then
FILE_OPT="-F document=@\"$2\""
else
echo File \"$2\" not found
fi
DESC=${3}
fi
else
DESC=${1}
fi
fi
if [ "$DESC" != "" ]; then
DESC=" <i>(${DESC})</i>"
fi
M_DESC="<b>Host: `hostname`</b>$DESC"
MESSAGE="${M_DESC}"$'\n'$'\n'"<code>${TEXT}</code>"
/usr/bin/curl --silent --output /dev/null \
--data-urlencode "chat_id=${TELEGRAM_CHAT_ID}" \
--data-binary "text=${MESSAGE}" \
--data-urlencode "parse_mode=HTML" \
--data-urlencode "disable_web_page_preview=true" \
"https://api.telegram.org/bot${TELEGRAM_API_KEY}/sendMessage"
if [ "$FILE_OPT" != "" ]; then
/usr/bin/curl --silent --output /dev/null \
${FILE_OPT} \
-F chat_id=${TELEGRAM_CHAT_ID} \
https://api.telegram.org/bot${TELEGRAM_API_KEY}/sendDocument
fi
Использование
Простое сообщение
echo "Привет" | /usr/local/bin/send_notify.sh
Добавляем заголовок
echo "Привет" | /usr/local/bin/send_notify.sh 'привет от echo'
Отправка файла
echo "Привет" | /usr/local/bin/send_notify.sh -f /tmp/filename 'привет от echo'
[ Править ]