Созданный: 2026/07/02 19:41:27 America/Chicago
К: admin
Изменено: 2026/07/03 16:24:56 America/Chicago
К: admin

Verlihub может загружать Lua скриптов через свой плагин Lua. Используйте Lua, когда концентратору требуется небольшое изменение поведения без перекомпиляции сервера Verlihub.

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

Что делает плагин Lua

Плагин Lua выполняет Lua скриптов внутри процесса концентратора. Это дает администраторам более простой способ настройки хаба, чем редактирование исходного кода C++ Verlihub или написание скомпилированного плагина.

Сценарии Lua обычно легче просматривать и заменять, чем скомпилированные плагины, если изменения небольшие и зависят от концентратора.

  • Пользовательские команды хаба
  • Автоматизированные приветственные сообщения
  • Объявления по времени
  • Проверки проверки пользователей
  • Ответы ботов
  • Команды помощника оператора
  • Перехватчики регистрации или уведомлений
  • Простые проверки на спам и флуд
  • Поведение, специфичное для концентратора, которое не оправдывает использование плагина C++.

Требования

Прежде чем включать поддержку Lua, убедитесь, что плагин Lua существует на сервере. Общий путь к плагину: /usr/local/lib/liblua_pi.so.

Проверьте, существует ли файл плагина:

 ls -lah /usr/local/lib/liblua_pi.so 

Если файл не существует, возможно, Lua не был создан или установлен. Пересоберите Verlihub с включенной поддержкой плагина Lua.

В зависимости от системы и способа установки плагин также может находиться в /usr/lib, /usr/lib64, /usr/local/lib, или /usr/local/lib64. Найдите его перед изменением конфигурации хаба:

 find /usr /usr/local -name 'liblua_pi.so' 2>/dev/null 

Здание Verlihub С поддержкой Lua

Если поддержка Lua не была включена во время установки, сначала установите пакет разработки Lua. В Debian или Ubuntu:

 sudo apt update
sudo apt install lua5.4 liblua5.4-dev 

Некоторые сборки Verlihub используют Lua 5.3 вместо Lua 5.4. Установите соответствующий пакет, если этого требует ваша ветка или дистрибутив:

 sudo apt install lua5.3 liblua5.3-dev 

Затем пересоберите Verlihub с включенным плагином Lua через CMake:

 cmake .. -DWITH_LUA=ON
make
sudo make install 

Точное имя опции CMake может варьироваться в зависимости от версии Verlihub. Прежде чем перестраивать производственный центр, проверьте доступные варианты сборки:

 cmake -LAH .. 

После установки подтвердите, что библиотека плагина установлена:

 find /usr /usr/local -name 'liblua_pi.so' 2>/dev/null 

Команды плагина

Плагин Lua управляется через команды плагина Verlihub из учетной записи оператора.

  • Список установленных или известных плагинов с помощью !lstplug.
  • Зарегистрируйте плагин Lua с помощью !addplug lua -p /usr/local/lib/liblua_pi.so -a 1 -d Support for Lua scripts..
  • Отметьте плагин Lua активным с помощью !modplug lua -a 1.
  • Загрузите плагин с помощью !onplug lua.
  • Подтвердите загруженные плагины с помощью !pluglist.
 !lstplug
!addplug lua -p /usr/local/lib/liblua_pi.so -a 1 -d Support for Lua scripts.
!modplug lua -a 1
!onplug lua
!pluglist 

Команда Объяснение

!lstplug

Перечисляет плагины, известные по номеру Verlihub. Сначала используйте его, чтобы узнать, зарегистрирован ли уже плагин Lua.

 !lstplug 

!addplug

Регистрирует плагин Lua с Verlihub.

 !addplug lua -p /usr/local/lib/liblua_pi.so -a 1 -d Support for Lua scripts. 

Значение варианта:

  • lua: Внутреннее имя плагина.
  • -p /usr/local/lib/liblua_pi.so: Путь к общей библиотеке плагина Lua.
  • -a 1: Отмечает плагин как активный.
  • -d Support for Lua scripts.: Понятное для человека описание плагина.

!modplug

Изменяет запись плагина и гарантирует, что плагин Lua помечен как активный.

 !modplug lua -a 1 

!onplug

Загружает или запускает плагин Lua после его добавления и включения.

 !onplug lua 

!pluglist

Показывает загруженные в данный момент плагины. Используйте его, чтобы подтвердить, что Lua активен.

 !pluglist 

Храните сценарии Lua в выделенном каталоге, принадлежащем пользователю службы Verlihub.

 sudo mkdir -p /usr/local/etc/verlihub/lua
sudo chown -R verlihub:verlihub /usr/local/etc/verlihub/lua
sudo chmod 750 /usr/local/etc/verlihub/lua 

Если ваша служба Verlihub работает от имени другого пользователя, замените verlihub:verlihub с правильным пользователем и группой.

 sudo chown -R vh:vh /usr/local/etc/verlihub/lua
sudo chown -R www-data:www-data /usr/local/etc/verlihub/lua 

Не делайте Lua каталогов сценариев общедоступными. Избегать chmod 777 /usr/local/etc/verlihub/lua.

Пример Lua Скрипт

Создайте небольшой тестовый скрипт:

 sudo nano /usr/local/etc/verlihub/lua/test.lua 

Пример содержания:

 -- Simple Verlihub Lua test script.
-- This file confirms that the Lua plugin can load and execute scripts.
function Main()
    VH:SendToAll("Lua test script loaded successfully.")
end 

Доступные функции Lua зависят от API плагина Lua. Некоторые установки предоставляют вспомогательные объекты или функции по-разному, поэтому сравните примеры с библиотекой сценариев Lua, используемой в вашей версии Verlihub.

Загрузка Lua скриптов

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

Начните с проверки доступных команд плагина Lua изнутри хаба:

 !help lua
!plughelp lua 

Если плагин поддерживает листинг, загрузку, выгрузку или перезагрузку скриптов, вы можете увидеть команды, подобные этим:

 !lua
!lslua
!loadlua
!unloadlua
!reloadlua 

Имена команд могут отличаться в разных сборках Verlihub и версиях плагинов.

Проверка Lua работает

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

 !lstplug
!pluglist 

Затем проверьте журналы сервера на наличие Lua сообщений плагина:

 journalctl -u verlihub -n 100 --no-pager 

Если Verlihub не управляется systemd, вместо этого проверьте настроенный каталог журналов Verlihub. Общие места включают в себя /var/log/verlihub и /usr/local/var/log/verlihub.

Найдите записи журнала, связанные с Lua, если журнал службы большой:

 grep -i lua /var/log/verlihub/* 2>/dev/null 

Производственные рекомендации

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

Хорошие Lua вариантов использования:

  • Простые команды
  • Сообщения хаба
  • Пользовательские проверки
  • Легкая автоматизация
  • Небольшие крючки интеграции

Не используйте Lua для:

  • Длительные фоновые задания
  • Тяжелые запросы к базе данных
  • Обработка больших файлов
  • Блокировка сетевых вызовов
  • Циклы, нагружающие процессор
  • Все, что может заморозить процесс хаба

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

Примечания по безопасности

Только доверенные администраторы должны иметь возможность загружать или изменять сценарии Lua.

Рекомендуемые разрешения:

 sudo chown -R verlihub:verlihub /usr/local/etc/verlihub/lua
sudo chmod -R u=rwX,g=rX,o= /usr/local/etc/verlihub/lua 

Не разрешайте ненадежным пользователям записывать файлы Lua. Не храните секреты непосредственно в сценариях Lua, если права доступа к файлам не заблокированы.

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

Поиск неисправностей

Файл плагина не найден

Симптомы включают в себя Cannot load plugin, No such file, или liblua_pi.so not found. Найдите библиотеку, затем обновите путь к сохраненному плагину:

 find /usr /usr/local -name 'liblua_pi.so' 2>/dev/null 
 !modplug lua -p /correct/path/to/liblua_pi.so 

Lua Плагин не отображается в списке плагинов

Проверьте, добавилось ли оно. Если он отсутствует, добавьте его, отметьте активным и загрузите:

 !lstplug
!addplug lua -p /usr/local/lib/liblua_pi.so -a 1 -d Support for Lua scripts.
!modplug lua -a 1
!onplug lua 

Плагин существует, но не загружается

Проверьте зависимости общих библиотек и найдите недостающие Lua библиотек:

 ldd /usr/local/lib/liblua_pi.so 
 not found 

Если библиотеки Lua отсутствуют, установите соответствующий пакет среды выполнения Lua.

 sudo apt install lua5.4 liblua5.4-0
sudo apt install lua5.3 liblua5.3-0 

Скрипт не запускается

Проверьте путь к сценарию, права доступа к файлам и журналы Verlihub. Также убедитесь, что плагин Lua поддерживает API сценария, используемый сценарием.

 ls -lah /usr/local/etc/verlihub/lua
journalctl -u verlihub -n 100 --no-pager 

Хаб становится нестабильным после загрузки скрипта

Выгрузите скрипт или отключите плагин Lua. Если хаб не отвечает, остановите Verlihub из оболочки и переместите скрипт из каталога Lua:

 sudo systemctl stop verlihub
sudo mkdir -p /usr/local/etc/verlihub/lua-disabled
sudo mv /usr/local/etc/verlihub/lua/problem-script.lua /usr/local/etc/verlihub/lua-disabled/
sudo systemctl start verlihub 

Рекомендуемый рабочий процесс администратора

  1. Убедитесь, что плагин Lua существует.
  2. Добавьте плагин с помощью !addplug.
  3. Включите его с помощью !modplug.
  4. Начните с !onplug.
  5. Подтвердите это с помощью !pluglist.
  6. Создайте выделенный каталог сценариев Lua.
  7. Добавьте один небольшой тестовый скрипт.
  8. Проверьте журналы Verlihub.
  9. Добавляйте производственные сценарии по одному.
  10. Сохраняйте резервные копии рабочих скриптов перед внесением изменений.

Verlihub Lua Библиотека сценариев

Библиотека сценариев Verlihub Lua содержит примеры сценариев и многоразовый код Lua для настройки концентратора. Используйте его как справочник по поддерживаемым функциям, перехватчикам событий и шаблонам команд.

При использовании скриптов из библиотеки:

  • Просмотрите сценарий перед его установкой.
  • Убедитесь, что он соответствует вашей версии Verlihub.
  • Сначала протестируйте его на непроизводственном хабе.
  • Проверьте жестко закодированные пути, имена концентраторов, псевдонимы операторов или настройки базы данных.
  • Перед редактированием сохраните резервную копию исходного сценария.

Откройте библиотеку сценариев Verlihub Lua.

Related Pages

Родительская Страница