Пример создания бота Telegram. Уведомления с сервера в Telegram

Для начала создайте бота в Telegram с помощью @BotFather, от него и буду приходить уведомления с сервера.

С помощью бота @MyTelegramID_bot узнаем свой ID аккаунта.

Заходим на наш сервер и создаем файл .py. Открываем его любым текстовым редактором и вносим туда этот код:

#!/usr/bin/python3
from urllib.parse import urlparse, urlencode
from urllib.request import urlopen
import argparse, sys
token = 'TOKEN_BOT'
id = 'ID_USER'
host = sys.argv[1]
parser = argparse.ArgumentParser()
parser.add_argument('-m', default=host, dest='MESSAGE')
namespace = parser.parse_args()
message = namespace.MESSAGE
turl = 'https://api.telegram.org/bot'
tfull = '{0}{1}/sendMessage'.format(turl, token)
tparams = urlencode({'chat_id': id, 'text': message}).encode('utf-8')
urlopen(tfull, tparams)

Или тоже самое можно написать bash-скриптом:

#!/bin/bash
ID_USER=475831490
TOKEN_BOT=534993854:AAFK4lkRNp5-MyvHH8l-EbpoNKD7_EsDdvI
message=$1
curl -s -X POST "https://api.telegram.org/bot"$TOKEN_BOT"/sendMessage" -F chat_id=$ID_USER -F text="$message" 

Где,
TOKEN_BOT — токен созданного Вами бота.
ID_USER — ID Вашего аккаунта. Он необходим для того, чтобы уведомление бот присылал только Вашему аккаунту. Другие, кто добавит бота, получать уведомление не будут.

Для начала сделайте скрипт исполняемым командой:

chmod +x file_name.py

И проверим, работает ли. Отправим команду, чтобы бот отписал нам простое сообщение «Hello, world!»:

python3 file_name.py -m "Hello, world!" 

Обратите внимание, что обязательно нужно указывать опцию -m, а сообщение должно быть в скобках («»).

Как можно использовать?

Допустим, Вы запустили на сервере команду, которая выполняется достаточно длинное время. Можно использовать скрипт для уведомления о завершении команды. Например:

какая_то_длинная_команда | python3 file_name.py -m "Выполнение завершено" 

Или, чтобы не писать каждый раз полный запуск команды скрипта, создадим алиас с названием send:

alias send='python3 ~/file_name.py'

Где, ~/file_name.py — полный пусть к скрипту.

Теперь уведомление о завершении можно будет прописать так:

какая_то_длинная_команда | send -m "Выполнение завершено" 

Можно так же использовать скрипт для отправки логов. К примеру напишем скрипт для вывода логов авторизации, apache и fail2ban:

#!/bin/bash
logs=$(echo -e "\n Auth" ; tail -n 10 /var/log/auth.log ; echo -e "\n Fail2ban" ; tail -n 10 /var/log/fail2ban.log ; echo -e "\n Apache" ; tail -n 10 /var/log/apache2/error.log)
python3 ~/file_name.py -m "$logs" 

И добавим запись в cron, чтобы скрипт выполнялся (например) каждые 30 минут:

crontab-e
*/30 * * * * /log_sent_telegram.sh

После чего Вам бот будет присылать каждые 30 минут эти логи.

Так же, можно использовать такой же метод для проверки доступности какого-то сайта методом пинг. Скрипт выглядит так:

#!/bin/bash
 IP='lexblog.org'
 ping -c 1 $IP 2>/dev/null 1>/dev/null
 if [ "$?" = 0 ]
 then
 echo "good" 
 else
 python3 ~/tgsend.py -m "example.tdl [not available]" 
 fi

И добавляете в cron с интервалом выполнения 5 минут:

*/5 * * * * ~/ping_check.sh

Goodhoster.NET
Добавить комментарий

  1. Jamesforia

    [url=https://school-of-languages.ru/]английский для дошкольников[/url]
    [url=https://school-of-languages.ru/]https://school-of-languages.ru/[/url]
    [url=https://anolink.com/?link=http://school-of-languages.ru]http://google.mw/url?q=http://school-of-languages.ru[/url]

    Ответить
  2. Jamesforia

    [url=https://school-of-languages.ru/]английский для малышей с нуля[/url]
    [url=https://school-of-languages.ru]http://school-of-languages.ru[/url]
    [url=http://google.com.lb/url?q=http://school-of-languages.ru]http://www.brambraakman.com/?URL=school-of-languages.ru[/url]

    Ответить
  3. Boriskchany

    [url=http://www.english-yes.ru]английский лагерь санкт петербург[/url]
    [url=http://english-yes.ru/]http://english-yes.ru/[/url]
    [url=http://google.je/url?q=http://english-yes.ru]https://www.google.kg/url?q=http://english-yes.ru[/url]

    Ответить
  4. Boriskchany

    [url=http://www.english-yes.ru]английский разговорный клуб для детей[/url]
    [url=http://english-yes.ru/]http://english-yes.ru/[/url]
    [url=http://showhorsegallery.com/?URL=english-yes.ru]http://www.phpooey.com/?URL=english-yes.ru[/url]

    Ответить
  5. Boriskchany

    [url=https://english-yes.ru]английский язык для ребенка 5 лет[/url]
    [url=http://english-yes.ru/]http://english-yes.ru/[/url]
    [url=https://www.google.tk/url?q=http://english-yes.ru]http://www.google.lu/url?q=http://english-yes.ru[/url]

    Ответить
  6. JamesWab

    [url=http://www.indigo-school.ru]английский для детей 3 года онлайн[/url]
    [url=https://indigo-school.ru]https://indigo-school.ru[/url]
    [url=https://ssylki.info/?who=indigo-school.ru]http://www.google.ci/url?q=http://indigo-school.ru[/url]

    Ответить
  7. JamesWab

    [url=https://www.indigo-school.ru]уроки немецкого для детей онлайн[/url]
    [url=https://indigo-school.ru]https://indigo-school.ru[/url]
    [url=https://jannisgundermann.com/?URL=indigo-school.ru]https://www.google.rw/url?q=http://indigo-school.ru[/url]

    Ответить
  8. Zacharyspoma

    [url=http://xn--b1aajaj5aaqsiv3g.xn--p1ai/]аренда пухто спб цена[/url]
    [url=http://xn--b1aajaj5aaqsiv3g.xn--p1ai]http://xn--b1aajaj5aaqsiv3g.xn--p1ai[/url]
    [url=http://google.com.ni/url?q=http://xn--b1aajaj5aaqsiv3g.xn--p1ai/]http://sc.hkex.com.hk/TuniS/http://xn--b1aajaj5aaqsiv3g.xn--p1ai/[/url]

    Ответить
  9. Zadlaryspoma

    [url=http://xn--b1aajaj5aaqsiv3g.xn--p1ai/]выброс крупногабаритного мусора[/url]
    [url=http://xn--b1aajaj5aaqsiv3g.xn--p1ai/]http://xn--b1aajaj5aaqsiv3g.xn--p1ai[/url]
    [url=http://google.com.tn/url?q=http://xn--b1aajaj5aaqsiv3g.xn--p1ai/]https://cse.google.ie/url?q=http://xn--b1aajaj5aaqsiv3g.xn--p1ai/[/url]

    Ответить
  10. Zadlaryspoma

    [url=http://xn--b1aajaj5aaqsiv3g.xn--p1ai/]вывеземмусор[/url]
    [url=http://xn--b1aajaj5aaqsiv3g.xn--p1ai/]http://xn--b1aajaj5aaqsiv3g.xn--p1ai[/url]
    [url=https://google.co.ve/url?q=http://xn--b1aajaj5aaqsiv3g.xn--p1ai/]http://www.jschell.de/link.php?url=http://xn--b1aajaj5aaqsiv3g.xn--p1ai/[/url]

    Ответить
  11. KennethNakly

    [url=http://www.vds33.ru]пиломатериалы спб цены[/url]
    [url=http://vds33.ru/]http://vds33.ru/[/url]
    [url=https://google.cg/url?q=http://vds33.ru]http://google.com.ni/url?q=http://vds33.ru[/url]

    Ответить
  12. KennethNakly

    [url=http://vds33.ru]пиломатериалы спб с доставкой[/url]
    [url=http://vds33.ru/]http://vds33.ru/[/url]
    [url=http://maps.google.tt/url?q=https://vds33.ru]http://www.drugs.ie/?URL=vds33.ru[/url]

    Ответить
  13. IsmaelTroum

    [url=http://center-tec.ru/index6.html]повышение квалификации по пожарной безопасности 2022 цена[/url]
    [url=http://www.center-tec.ru/index6.html]http://center-tec.ru/index6.html[/url]
    [url=http://google.tt/url?q=http://center-tec.ru/index6.html]https://google.de/url?q=http://center-tec.ru/index6.html[/url]

    Ответить
  14. IsmaelTroum

    [url=http://center-tec.ru/index6.html]повышение квалификации в области пожарной безопасности[/url]
    [url=http://center-tec.ru/index6.html]http://www.center-tec.ru/index6.html[/url]
    [url=https://www.google.bg/url?q=http://center-tec.ru/index6.html]http://google.co.mz/url?q=http://center-tec.ru/index6.html[/url]

    Ответить
  15. RafaelGaisp

    [url=https://regionles35.ru]заказать доски с доставкой[/url]
    [url=http://regionles35.ru]http://regionles35.ru[/url]
    [url=http://www.onesky.ca/?URL=regionles35.ru]https://www.youtube.com/redirect?q=regionles35.ru[/url]

    Ответить
  16. RafaelGaisp

    [url=http://regionles35.ru]брус стоимость[/url]
    [url=http://regionles35.ru]http://regionles35.ru[/url]
    [url=http://big5.qikan.com/gate/big5/regionles35.ru]https://www.google.bi/url?q=http://regionles35.ru[/url]

    Ответить