Перейти к содержанию

Shell

Модуль для выполнения shell-команд на сервере прямо из чата Matrix. Предоставляет интерфейс для запуска произвольных команд в subprocess с таймаутом и обработкой больших выводов.

Команды

.sh <command>

Доступ: OWNER

Выполняет shell-команду и возвращает вывод.

.sh uname -a
# → ⚙️ | Executing command...
# → 📟 | Command: uname -a
#    📤 | Output:
#    Linux mxuserbot 6.8.0-arch1-1 #1 SMP PREEMPT_DYNAMIC x86_64 GNU/Linux

.sh df -h
# → 📟 | Command: df -h
#    📤 | Output:
#    Filesystem      Size  Used Avail Use% Mounted on
#    dev             7.8G     0  7.8G   0% /dev
#    ...

Защита: подтверждение sudo

Если команда содержит sudo в любом месте, бот запрашивает подтверждение через эмодзи:

.sh sudo reboot
# → ⚠️ | Security Confirmation
#    You are about to execute:
#    sudo apt update
#
#    Do you want to proceed?
#    [✅] [❌]

При подтверждении — команда выполняется. При отказе — отменяется.

Обработка больших выводов

Если вывод команды превышает 1000 строк, он автоматически отправляется как текстовый файл:

.sh dmesg
# → ⚙️ | Executing command...
# → 📟 | Command: dmesg
#    📄 | Output (15234 lines) — sent as file:
#    (output.txt прикреплён)

ShellExecutor

Внутренний класс, управляющий выполнением команд:

Параметры

Параметр Значение Описание
TIMEOUT 60.0 с Максимальное время выполнения команды
MAX_INLINE_LINES 1000 Порог для отправки вывода файлом

Обработка ошибок

  • TimeoutError⏱️ | Command execution timeout (60s)
  • Exception❌ | Error executing command: <traceback>