Создаем бота в телеграм:
идем к @BotFather авторизируемся у него и создаем нового бота командой /newbot, обязательно со словом bot в конце имени бота.
После создания бота вам придет сообщение с токеном, который нужно сохранить.
Далее, нужно получить user_id, — это ID нашего с ботом чата, на который он будет отправлять уведомления.
Для этого открываем страницу созданного бота и пишем ему что-нибудь. После чего переходим по адресу:
https://api.telegram.org/bot<token>/getUpdates
Вместо token нужно подставить токен, который нам выдал @BotFather.
На странице ищем id, и так же его сохраняем.
Теперь, для отправки уведомления используем команду:
https://api.telegram.org/bot<token>/sendMessage?chat_id=<chat_id>&text=<text>
Где <token> – токен. <chat_id> – ID чата. <text> – текст, который мы отправляем.
Примеры использования:
Отправка уведомлений про новые ssh подключения:
В файл ~/.bashrc добавить строку:
curl -s -X POST https://api.telegram.org/bot<token>/sendMessage -d chat_id=<chat_id> -d text=" User $(whoami) logged into $(hostname) on $(date) from $(echo $SSH_CLIENT | awk '{ print $1}')" &>/dev/null 2>&1
Простой мониторинг доступности IP:
Можно добавить в cron для проверки с интервалом.
ping 192.168.0.1 -c2 >> log || curl -s -X POST https://api.telegram.org/bot<token>/sendMessage -d chat_id=<chat_id> -d text="$(tail -5 log)" &>/dev/null 2>&1
Подобных примеров может быть много, уведомления на телеграм более удобны и более быстры, чем по почте. Их можно использовать как альтернативу, если заблокирован 25 порт.
Бота так же можно использовать и для других целей, у него разнообразный функционал, ознакомится с которым Вы можете на странице https://core.telegram.org/bots/api.
2 Comments
Dikssen · 19.09.2019 at 00:16
Это гениально!!!!
Dikssen · 15.12.2019 at 05:26
Если подключить python и использовать данный скрипт
import config
import telebot
import os
myCmd = ‘ls -la’
bot = telebot.TeleBot(‘1041657957:AAE8epW9jGdghTQMDRvElYWwi’)
#@bot.message_handler(content_types=[“text”])
#def repeat_all_messages(message): # Название функции не играет никакой роли, в принципе
# bot.send_message(message.chat.id, message.text)
@bot.message_handler(content_types=[“text”])
def cmd_comand(message):
if message.text == ‘Start server’:
bot.send_message(message.chat.id, “СТАРТУЮЮЮ!!!”)
os.system (“sl”)
os.system (“service httpd start”)
elif message.text == ‘D’:
os.system (“service httpd stop”)
bot.send_message(message.chat.id, “Взял апач стопнул, ну что за дебил!!!”)
if __name__ == ‘__main__’:
bot.polling(none_stop=True)
Можно выполнять команды с телеграмма на сервере.
Потребуется модуль pytelegrambotapi
pip3 install pytelegrambotapi