Отправка уведомлений в 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/\&/\&amp;/g' | sed 's/</\&lt;/g' | sed 's/>/\&gt;/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'

[ Править ]

@kiranananda