Telegram — один из самых популярных сегодня мессенджеров. И если вы его активный пользователь, то сегодня покажу как, можно получать статистику, выполнять Shell-запросы и настраивать оповещения.
Я на всех своих серверах использую Debian, поэтому буду описывать процедуру установки на этой ОС.
Установка бота
Обновим список пакетов в системе:
$ apt-get update
Установим Python3:
$ apt-get install python3
Ставим систему управления python-пакетами:
$ wget https://bootstrap.pypa.io/get-pip.py
$ python3 get-pip.py
Ставим либы, которые нужны боту:
$ pip install telepot $ apt-get install python3-psutil
Отлично, теперь ставим Git и клонируем репозиторий с ботом:
$ apt-get install git $ git https://github.com/vladios13/ServerStatsBot.git $ cd ServerStatsBot $ pip3 install -r requirements.txt
Настраиваем бота:
Перейдём в директорию бота:
$ cd ServerStatsBot
Теперь нам нужно создать бота и получить токен у BotFather в Telegram. Этот токен нужно скопировать в файл tokens.py.
Выполняем, переименовав файл:
$ cp tokens.py_example tokens.py
Редактируем tokens.py:
$ nano tokens.py
В качестве значения параметра telegrambot
указываем токен, а параметр adminchatid
где, указываем ID группы или пользователя.
После внесения всех правок файл должен выглядеть так:
# Токен бота telegrambot = '9999999:6666aaaaaa666666a6aaa' # Введите chat_id канала/группы/пользователя. Можно использовать несколько значений, подробнее в readme.md adminchatid = [99999999]
Сохраняем все изменения и запускаем бота:
$ python3 servstatsbot.py
Бонус!
Сделаем так, что бы бот автоматически запускался при загрузке системы.
Создаем юнит-файл для настройки автозапуска:
$ nano /etc/systemd/system/tgstatsbot.service
Скопируем следующие строки:
[Unit] Description=Telegram Status Bot After=multi-user.target [Service] Type=idle ExecStart=/usr/bin/python3 /root/ServerStatsBot/servstatsbot.py Restart=always [Install] WantedBy=multi-user.target
Сохраняем и активируем сервис:
$ systemctl daemon-reload $ systemctl enable tgstatsbot.service
Запускаем бота в режиме демона:
$ systemctl start tgstatsbot.service
Теперь бот в случае какого-либо сбоя будет перезапускаться автоматически.