Всем привет! В данной статье я расскажу и покажу, как с помощью бота в Телеграме управлять дедиком на Linux системах. Принцип работы такой: на дедик нужно загрузить специальный скрипт на Python и запустить его. Больше ничего не требуется, после этих действий вы уже сможете управлять сервером путем отправки команд в чат с ботом. Итак, начнём. 1. Создаём бота через BotFather, а также узнаём свой id в Телеграме. Введите "BotFather" в поиске Телеграма, пропишите "/newbot" и следуйте инструкциям: Как происходит создание бота Вам понадобится API токен вашего бота, запишите его куда вам удобно. Далее переходим в @myidbot и узнаем свой id, он также нам пригодится. 2. Создаем скрипт. Для начала импортируем нужные библиотеки: import telebot import subprocess Python import telebot import subprocess Затем введём api токен бота и ваш id в Телеграме: bot = telebot.TeleBot("XXXXXXXXXXXXXXXXXXXXXXXXXXXX") owner_id = XXXXXXX Python bot = telebot.TeleBot("XXXXXXXXXXXXXXXXXXXXXXXXXXXX") owner_id = XXXXXXX Далее напишем основную функцию: @bot.message_handler(content_types=["text"]) def input_command(message): if (owner_id == message.chat.id): #Проверка владельца, кроме вас никто не сможет пользоваться ботом command = message.text #Текст команды try: process = subprocess.run([command], capture_output=True, shell=True, text="True") #Ввод и выполнение команды на дедике bot.send_message(message.chat.id, process.stdout) #Вывод результата выполнения команды в бота except: bot.send_message(message.chat.id, "Команда введена неверно") #Если команда неправильная, бот уведомит об этом Python @bot.message_handler(content_types=["text"]) def input_command(message): if (owner_id == message.chat.id): #Проверка владельца, кроме вас никто не сможет пользоваться ботом command = message.text #Текст команды try: process = subprocess.run([command], capture_output=True, shell=True, text="True") #Ввод и выполнение команды на дедике bot.send_message(message.chat.id, process.stdout) #Вывод результата выполнения команды в бота except: bot.send_message(message.chat.id, "Команда введена неверно") #Если команда неправильная, бот уведомит об этом И в конце допишем команду, отвечающую за непрерывную работу бота: while True: bot.polling(none_stop=True, interval=0) Python while True: bot.polling(none_stop=True, interval=0) Готово! Скрипт полностью написан. Кому лень разбираться - вот сразу весь код: Весь код import telebot import subprocess bot = telebot.TeleBot("XXXXXXXXXXXXXXXXXXXXXXXXXX") owner_id = XXXXXXXXX @bot.message_handler(content_types=["text"]) def input_command(message): if (owner_id == message.chat.id): command = message.text try: process = subprocess.run([command], capture_output=True, shell=True, text="True") bot.send_message(message.chat.id, process.stdout) except: bot.send_message(message.chat.id, "Команда введена неверно") while True: bot.polling(none_stop=True, interval=0) Python import telebot import subprocess bot = telebot.TeleBot("XXXXXXXXXXXXXXXXXXXXXXXXXX") owner_id = XXXXXXXXX @bot.message_handler(content_types=["text"]) def input_command(message): if (owner_id == message.chat.id): command = message.text try: process = subprocess.run([command], capture_output=True, shell=True, text="True") bot.send_message(message.chat.id, process.stdout) except: bot.send_message(message.chat.id, "Команда введена неверно") while True: bot.polling(none_stop=True, interval=0) 3. Загружаем скрипт на дедик и запускаем его. Скачиваем PuTTY для подключения к дедику и WinSCP для передачи файлов с компьютера на дедик. Загружаем скрипт через WinSCP После установки программы заходим в неё, жмём кнопку "Соединение" и вводим данные от дедика: Далее просто ищем слева в файлах компьютера скрипт и перетаскиваем его на дедик: Через PuTTY заходим на дедик и устанавливаем Python, а также библиотеку, которую мы использовали при написании скрипта: Заходим на дедик через PuTTY Устанавливаем Python и Telebot, необходимые для запуска скрипта. У меня дедик на Ubuntu 20.04, поэтому установка происходит такими командами: sudo apt update sudo apt install python3.9 pip3 install pyTelegramBotAPI Code sudo apt update sudo apt install python3.9 pip3 install pyTelegramBotAPI Запускаем скрипт: python3 yourfilename.py Code python3 yourfilename.py Вместо "yourfilename.py" вписывайте свое имя скрипта. Если у вас все так же, то всё получилось и скрипт запущен. 4. Управляем дедиком через бота. Теперь переходим в бота и вписываем любую команду, например "ls", которая отображает список файлов и подкаталогов: Бот отправляет в ответ результат выполнения команды - все файлы, находящиеся в домашнем каталоге на моём дедике. Попробуем установить через бота какую нибудь библиотеку Python, например aiogram. Вводим команду "pip install aiogram": Установка произошла, проверим наличие библиотеки: Aiogram через бота установлен! Таким же образом можно выполнять множество других манипуляций с дедиком. Применений можно найти очень много. Всем спасибо за прочтение! Надеюсь, было интересно и полезно, ведь времени на реализацию скрипта и написание статьи я потратил достаточно много
Tyke, согласен, но не всегда компьютер под рукой, а таким образом просто через телегу на телефоне можно что нибудь чекнуть на дедике
snem, приложение не подходит для управления несколькими серваками, а бота для управления хоть 10-ю одновременно вполне можно сделать, взяв за основу такой мето
ЛысыйКотик, не согласен, есть много случаев, когда доступ к дедику нужно предоставить для большого количества людей одновременно, бот для этого самое то. Например если на дедике софт, а ты панель для его управления в телеге делаешь.
А этот бот будет работать только в телеге или на всех рандомных сайтах где есть чаты например засорение чата или флуд