Skip to content

Latest commit

 

History

History
120 lines (84 loc) · 5.03 KB

File metadata and controls

120 lines (84 loc) · 5.03 KB

Linux Server Management Telegram Bot

Python Aiogram License

Этот бот позволяет управлять Linux-сервером через Telegram, используя библиотеку aiogram. Он предоставляет администраторам удобный интерфейс для выполнения команд, мониторинга системы и работы с файлами.

📌 Основные возможности

  • Мониторинг системы: проверка состояния сервера, дискового пространства, использования памяти
  • Выполнение команд: запуск любых shell-команд через бота
  • Управление файлами: загрузка и скачивание файлов с сервера
  • Перезагрузка: возможность перезагрузить сервер
  • Кастомизируемые команды: добавление собственных команд через JSON-конфиг

🛠 Установка

  1. Клонируйте репозиторий:
git clone https://github.com/Azamat2023i/ServerManagementTelegramBot.git
cd ServerManagementTelegramBot
  1. Создайте и активируйте виртуальное окружение (Linux):
python -m venv .venv
source .venv/bin/activate
  1. Установите зависимости:
pip install -r requirements.txt
  1. Создайте файл .env и заполните его:
TELEGRAM_BOT_TOKEN=your_bot_token_here
ADMIN_IDS=123456789,987654321  # ID администраторов через запятую

🔧 Конфигурация команд

Файл commands.json позволяет добавлять собственные команды. Пример структуры:

{
    "disk": {
        "title": "<b>💾 Информация о дисках:</b>",
        "description": "Информация о дисках",
        "Дисковое пространство": "df -h",
        "Крупные директории": "du -sh /* 2>/dev/null | sort -hr | head -n 10"
    }
}

📋 Доступные команды

Основные команды

  • /start или /data - информация о боте
  • /status - статус сервера (uptime, нагрузка, пользователи)
  • /execute <команда> - выполнить произвольную команду
  • /reboot - перезагрузить сервер (с подтверждением)

Работа с файлами

  • /upload - загрузить файл на сервер
  • /download <путь> - скачать файл с сервера

Команды из конфига

Команды, определенные в commands.json, будут доступны как /имя_команды

🔒 Безопасность

  • Доступ к боту имеют только пользователи, указанные в ADMIN_IDS
  • Все команды выполняются с правами пользователя, под которым запущен бот
  • Рекомендуется запускать бота под отдельным пользователем с ограниченными правами

📄 Логирование

Бот ведет логи в файл bot.log с информацией о всех действиях.

📌 Особенности

  • Автоматическое разделение длинных сообщений
  • Подтверждение опасных действий (например, перезагрузки)
  • Уведомления администраторов при запуске/остановке бота
  • Поддержка загрузки файлов до 20MB

📸 Скриншоты работы бота

Mеню

Стартовое меню
Команды /start и /data


Запуск бота

Статус сервера


Отключение бота

Выполнение команд


Примеры выполнения команд

Загрузка файлов


📄 Лицензия

Этот проект распространяется под лицензией MIT. См. файл LICENSE для получения дополнительной информации.


⚠️ Предупреждение

Используйте этот бот с осторожностью, так как он предоставляет полный доступ к вашему серверу для указанных администраторов.