Боты для сервера linux

Telegram bot для Linux сервера: мониторинг, уведомления, управление

В этой статье мы рассмотрим пример использования Telegram бота на сервере с Linux CentOS, покажем, как настроить простые уведомления в чат-бот для мониторинга вашего сервера, а также несколько управляющих команд.

В эпоху мобильных гаджетов, стало актуально использование различных мессенджеров не только для общения с реальными людьми, но и использование различных ботов. Например, в Telegram существует широкий функционал для бота, который можно использовать в различных целях — выдать информацию о заказе клиенту, информация по посылке у почтового оператора и, например, мониторинг собственного сервера.

Создание чат-бота в Telegram

Для создания чат-бота в Telegram используется бот @BotFather. Чтобы создать своего бота, нужно найти @BotFather у себя в Telegram и перейти в чат с ним:

Нажмите START. Чтобы создать нового бота, выберете в меню /newbot, введите имя бота в формате “имя_bot». После создания бота, вы получите API токен бота, который нужен будет в дальнейшей настройке.

Теперь нужно узнать user_id — это ID часа с ботом, в который он будет отправлять уведомления. Перейдите в ваш с ним чат и нажмите старт и отправить любой символ. После этого в браузере перейдите по адресу:

https://api.telegram.org/bot /getUpdates — где это API который выдал BotFather.

На скриншоте выделен ваш ID.

Итак, мы создали бота в Telegram и получили авторизационные данные.

Отправка в чат Telegram уведомлений с сервера

С помощью ранее созданного бота и полученных ID можно отсылать с сервера уведомления в Telegram чат, и таким образом получать какие-то интересные нам данные или алерты.

Для отправки сообщения в чат, нужно использовать следующий URL:

https://api.telegram.org/bot /sendMessage?chat_id= &text=

# curl -s -X POST https://api.telegram.org/bot944496485:AAEtGaGCVrQ7d26Rc3r_cqXPIhrKVokh8e4/sendMessage -d chat_id=336116180 -d text=»Доброе утро, страна»

Для чего можно использовать такие Telegram уведомления? Например, при создании резервной копии вы можете отправлять уведомления о ее создании или же отправлять ссылку на скачивание копии в чат с ботом. Вы можете отправлять себе в Telegram уведомления с информацией о сбоях в системе. Можно добавить в крон выполнение каких-либо проверок с последующей отправкой в Telegram.

Еще пример использования подобных уведомлений:

# curl -s -X POST https://api.telegram.org/bot944496485:AAEtGaGCVrQ7d26Rc3r_cqXPIhrKVokh8e4/sendMessage -d chat_id=336116180 -d text=» User $(whoami) logged into $(hostname) on $(date) from $(echo $SSH_CLIENT | awk ‘< print $1>‘)» &>/dev/null 2>&1

Добавьте этот код в /etc/profile и будете получать уведомления в Telegram при каждом входе пользователей на сервер:

Хочу напомнить, что во всех командах, нужно указывать именно своей token(API) и ID чата.

Управление Linux сервером в чат-боте Telegram

Есть набор скриптов, которые позволяет управлять сервером Linux из Telegram чата, отправляя различные команды в чат с ботом. Для этого нужно установить Python, ряд инструментов и загрузить на сервер скрипты.

Читайте также:  Линукс для запуска с диска

# wget https://www.python.org/ftp/python/3.6.0/Python-3.6.0.tar.xz
# yum install xz -y
# tar -xpJf Python-3.6.0.tar.xz
# cd Python-3.6.0
# yum groupinstall «Development tools» -y
# yum install zlib-devel bzip2-devel openssl-devel ncurses-devel sqlite-devel -y
# ./configure
# make
# make install

Создайте симлинк для Python:

# ln -s /usr/local/bin/python3 /usr/bin/python3

И установите ПО для самого бота:

# pip3 install python-telegram-bot —upgrade

Теперь скачайте и распакуйте к себе на сервер в каталог root/admin три файла из архива telegram_bot.zip:

Рассмотрим файл config.py. В нем нам нужно указать token(API) и ID вашего чата с ботом, а также путь до директорий с бэкапами и директории, размер которой вы будете в дальнейшем проверять:

Файл bot.sh не требует настройки, в нем лишь указываем путь до bot.py:

И самый основной файл, который собственно и позволит нам управлять сервером, это bot.py. В нем описаны функции, которые будут доступны в чате с ботом и собственно туда, мы можем добавлять свой собственный функционал. Например, в первом блоке описываются доступные команды бота в чате:

Тут описываются все функции, которые будут доступны, после ввода команды /help.

Ниже описывается сама функция, например,

И эту функцию, нужно описать как команду:

То есть как видим, это выполнение стандартной функции проверки сетевых настроек ifconfig.

При знакомстве с ботом я попытался добавить собственную команду, например для проверки Apache:

# service httpd status

Но только через настройку данного файла это не сработало. Как я понял, здесь можно выполнить только команду описанную одним словом или символами. Я решил проблему создав файл apache_status.sh с содержимым:

#!/bin/bash
service httpd status

И создал на него симлинк:

# ln -s /root/admin/apache_status.sh /usr/local/sbin/apachestatus

Теперь при вызове команды apachestatus, у меня выводит статус веб-сервера apache:

В файле bot.py я заполнил все три блока, согласно других функций. Чтобы bot заработал, нужно запустить файл bot.sh. Для удобства, создадим отдельный сервис для Telegram бота. Создаем нужный файл и выставляем права:

# touch /etc/systemd/system/telegram-bot.service
# chmod 664 /etc/systemd/system/telegram-bot.service

После чего заходим в файл сервиса:

И добавляем содержимое:

# systemctl start telegram-bot.service
# systemctl enable telegram-bot.service
# systemctl status telegram-bot.service

Теперь, если в чате с вашим ботом ввести /help, вы получите список доступных команд.

Например, в данный момент у меня на сервере остановлен веб-сервер Apache:

Запустим его на сервере и проверим статус через Telegram:

Еще несколько примеров выполнения команд:

Таким образом, вы можете выполнять мониторинг своего Linux сервера или даже частичное администрирование через Telegram, что поможет сильно сократить время на выполнение типовых действий.

Так же хотел бы заметить, что авторизация сервера с ботом происходит именно по ID и token(API) (любой другой человек, не зная ваших данных, подключиться не сможет).

На момент выпуска статьи, тестовый бот удален.

Источник

Доступ к linux серверу с помощью Telegram-бота на Python

Довольно часто происходят ситуации, когда доступ к серверу нужен здесь и сейчас. Однако, не всегда подключение по SSH является наиболее удобным способом, потому что под рукой может не оказаться SSH клиента, адреса сервера или связки «пользователь/пароль». Конечно, есть Webmin, который упрощает администрирование, но он также не даёт моментальный доступ.

Читайте также:  Ноутбук apple macbook air retina m1 8гб 256ssd 13 mac os big sur

Поэтому я решил реализовать простое, но любопытное решение. А именно — написать Telegram-бота, который, запускаясь на самом сервере, будет выполнять присылаемые ему команды и возвращать результат. Изучив несколько статей на эту тему, я понял, что подобных реализаций ещё никто не описывал.

Данный проект я реализовывал на Ubuntu 16.04, но для беспроблемного запуска на других дистрибутивах я постарался сделать всё в общем виде.

Регистрация бота

Регистрируем нового бота у BotFather. Отправляем ему /newbot и далее по тексту. Нам понадобятся токен нового бота и ваш id (получить его можно, например, у @userinfobot).

Подготовка питона

Для запуска бота будем использовать библиотеку telebot ( pip install pytelegrambotapi ). С помощью библиотеки subprocess будем выполнять команды на сервере.

Запуск бота

На сервере создаем файл bot.py:
nano bot.py

И вставляем в него код:

Заменяем в нём токен бота на тот, который выдал BotFather, и user_id — на значение id вашего аккаунта. Проверка id юзера нужна для того, чтобы бот предоставлял доступ к вашему серверу только вам. Функция check_output() выполняет переданную команду и возвращает результат.

Осталось только запустить бота. Для запуска процессов на сервере я предпочитаю использовать screen ( sudo apt-get install screen ):

(где «ServerBot» — идентификатор процесса)

Процесс автоматически запустится в фоном режиме. Перейдем в диалог с ботом и проверим, что всё работает, как надо:

Сongratulations! Бот выполняет присылаемые ему команды. Теперь, чтобы получить доступ к серверу, вам достаточно открыть диалог с ботом.

Повторение команд

Зачастую, для мониторинга состояния сервера приходится выполнять одни и те же команды. Поэтому реализация повтора команд без их повторного отправления будет очень к месту.

Реализовывать будем при помощи inline кнопок под сообщениями:

Снова проверим, что всё работает корректно:

По нажатию кнопки под сообщением бот должен повторять команду, от которой было прислано данное сообщение.

Источник

Telegram bot для начинающих с выгрузкой на сервер ubuntu

Привет всем, хочу поделится опытом создания своего первого чат бота в телеграм. Меня вдохновила идея автоматизированного бизнеса с использованием чат ботов и голосовых ассистентов, потому что я считаю, что за этими технологиями будущее торговли товарами или продажа услуг в интернете.

Юный падаван

Так как опыта в программировании у меня не было, пришлось идти путем проб и ошибок. Я перечитал огромное количество материалов, посвященных созданию телеграм ботов и у меня сложилось впечатление, что авторы чего-то не договаривают, либо я еще совсем юный подаван. Первое с чем я столкнулся, был вопрос: на каком ПО заняться разработкой бота — Windows или Linux? Windows был мне знаком с детства, но слишком частые обновления и монопольный консерватизм Windows подтолкнули меня к Linux, к тому же, при установке Ubuntu рядом с Windows, я допустил грубую ошибку в связи со своей неопытностью, установив Ubuntu на весь жесткий диск)

Через тернии к звездам

Еще одна проблема, с которой я столкнулся, это блокировка телеграм в России, то есть запросы не отправлялись на сервер telegram bot api.

Читайте также:  Аналог майкрософт офис для линукс

Для начала работы нужно установить vpn на Ubuntu, я решил использовать vpn windscribe — хороший и бесплатный vpn, ссылка для установки rus.windscribe.com/guides/linux#how-to
Далее нужно установить Python

С ним уже в комплекте идет менеджер пакетов pip3.

Кстати, очень важная тема Виртуальная среда python . Виртуальная среда изолирует нужную версию для python и пакетов pip, так как все по умолчанию устанавливается глобально и при написании кода на python из-за различных версий пакетов может не запуститься код.
Для начала нужно установить виртуальную среду с помощью модуля venv
Для этого создадим директорию с любым название, в моем случае bots

Затем переходим в директорию bots

Устанавливаем виртуальную среду в каталог bots
Далее в каталоге bots создаем виртуальную среду

Следующий шаг — активируем ее

Итак, виртуальная среда готова, теперь установим пакет pyTelegramBotAPI в каталог bots

Теперь приступим к написанию кода, я использовал код из рипозитория gihub pyTelegramBotAPI.

Переходим в каталог бот и создаем файл с расширением в конце .py Я использую редактор NANO, вы можете использовать любой другой редактор, на ваше усмотрение)

Этот код возвращает то слово или команду, которую вы отправили боту. Где TOKEN нужно вставить «TOKEN» вашего бота.

Теперь нужно включить ваш vpn, лучше включить vpn в каталоге bots

Затем запустите бота с помощью команды

После этого бот должен заработать.

Для того, чтобы бот работал автономно и вам не приходилось все время сидеть с включенным пк, его надо загрузить на удаленный сервер. Для этого я использовал Ubuntu Server, главное чтобы он был расположен в другой стране, опять же из-за блокировки телеграм в РФ, я нашел vps стоимостью 3$, его достаточно для создания обыкновенного бота.

Как развернуть удаленный сервер я расскажу в следующей статье.

Источник

Zbot 1.5 для Linux сервера

Сообщений: 88
Благодарностей: 15
Полезность: 285

Меценат

Tarum

Подробный мануал пишу впервые, прошу сильно не пинать.

ZBot — это не официальное название бота Official CSBot (официальный бот для Counter-Strike Condition Zero). Когда-то давно он был (да и есть даже сейчас) в первых версиях Counter-Strike 1.6 Beta. Оба игровых мода используют одну и туже библиотеку — mp.dll / cs.so (cs_i386.so) для Windows и Linux соответственно. Если быть точнее, то данные библиотеки для CS 1.6 и CS Condition Zero полностью идентичны. Вот в них-то сам бот и находится, только запускается он если запущен мод Condition Zero, а в 1.6 не работает. Для того, что бы бот запустился для CS 1.6, внутри библиотеки через любой Hex-редактор меняется идентификатор мода и производятся другие манипуляции.

1) Установленный сервер cs 1.6 на Linux (Мой билд 6153)
2) Установленный метамод (Протестировано на metamod-p-1.21p37 взять можно отсюда )
Работа ботов стабильна так же при включенном AmxModX 1.8.2
3) Файлы из аттачмента, а именно: csbot_enable_mm.rar ( 3,56 килобайт ) Кол-во скачиваний: 477
и BotProfile.rar ( 2,08 килобайт ) Кол-во скачиваний: 408

Источник

Оцените статью