Verlihub může načíst Lua skriptů prostřednictvím svého pluginu Lua. Použijte Lua, když rozbočovač potřebuje malou změnu chování bez rekompilace serveru Verlihub.
Běžná použití zahrnují zobrazovací roboty, plánovaná oznámení, pomocné příkazy, ověřovací pravidla, automatické pomocníky pro moderování, statistiky hub a integrační háčky. Podpora Lua závisí na instalovaném, sestaveném a povoleném pluginu.
Co dělá plugin Lua
Plugin Lua spouští Lua skriptů uvnitř procesu hubu. To dává administrátorům lehčí cestu pro přizpůsobení hubu, než je úprava zdroje Verlihub C++ nebo psaní kompilovaného pluginu.
Skripty Lua se obvykle snáze kontrolují a nahrazují než zkompilované zásuvné moduly, pokud je změna malá a specifická pro centrum.
- Vlastní příkazy rozbočovače
- Automatické uvítací zprávy
- Časovaná oznámení
- Kontroly ověření uživatele
- Odpovědi botů
- Pomocné příkazy operátora
- Háčky pro protokolování nebo upozornění
- Jednoduché antispamové nebo protipovodňové kontroly
- Chování specifické pro hub, které neospravedlňuje plugin C++
Požadavky
Před povolením podpory Lua se ujistěte, že na serveru existuje plugin Lua. Běžná cesta k pluginu je /usr/local/lib/liblua_pi.so.
Zkontrolujte, zda soubor pluginu existuje:
ls -lah /usr/local/lib/liblua_pi.so
Pokud soubor neexistuje, Lua pravděpodobně nebyl sestaven nebo nainstalován. Znovu sestavit Verlihub s povolenou podporou pluginu Lua.
V závislosti na systému a způsobu instalace může plugin také žít /usr/lib, /usr/lib64, /usr/local/lib nebo /usr/local/lib64. Před změnou konfigurace hubu jej vyhledejte:
find /usr /usr/local -name 'liblua_pi.so' 2>/dev/null
Budova Verlihub S podporou Lua
Pokud během instalace nebyla zahrnuta podpora Lua, nainstalujte nejprve vývojový balíček Lua. Na Debianu nebo Ubuntu:
sudo apt update
sudo apt install lua5.4 liblua5.4-dev
Některé Verlihub sestavy používají Lua 5.3 místo Lua 5.4. Nainstalujte odpovídající balíček, když to vaše pobočka nebo distribuce vyžaduje:
sudo apt install lua5.3 liblua5.3-dev
Poté znovu sestavte Verlihub s pluginem Lua povoleným prostřednictvím CMake:
cmake .. -DWITH_LUA=ON
make
sudo make install
Přesný název možnosti CMake se může lišit podle verze Verlihub. Před přestavbou produkčního centra zkontrolujte dostupné možnosti sestavení:
cmake -LAH ..
Po instalaci se ujistěte, že byla nainstalována knihovna zásuvných modulů:
find /usr /usr/local -name 'liblua_pi.so' 2>/dev/null
Příkazy pluginu
Plugin Lua je spravován prostřednictvím příkazů pluginu Verlihub z účtu operátora.
- Seznam nainstalovaných nebo známých pluginů s
!lstplug. - Zaregistrujte plugin Lua pomocí
!addplug lua -p /usr/local/lib/liblua_pi.so -a 1 -d Support for Lua scripts.. - Označte plugin Lua jako aktivní pomocí
!modplug lua -a 1. - Načtěte plugin pomocí
!onplug lua. - Potvrďte načtené pluginy pomocí
!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
Vysvětlení příkazu
!lstplug
Zobrazí seznam pluginů známých pod číslem 8800442200001900222440088. Nejprve jej použijte, abyste zjistili, zda je plugin Lua již zaregistrován.
!lstplug
!addplug
Registruje plugin Lua s Verlihub.
!addplug lua -p /usr/local/lib/liblua_pi.so -a 1 -d Support for Lua scripts.
Význam možnosti:
lua: Interní název pluginu.-p /usr/local/lib/liblua_pi.so: Cesta ke sdílené knihovně pluginu Lua.-a 1: Označí plugin jako aktivní.-d Support for Lua scripts.: Lidsky čitelný popis pluginu.
!modplug
Upraví záznam pluginu a zajistí, aby byl plugin Lua označen jako aktivní.
!modplug lua -a 1
!onplug
Načte nebo spustí plugin Lua poté, co byl přidán a povolen.
!onplug lua
!pluglist
Zobrazuje aktuálně načtené pluginy. Použijte jej k potvrzení, že Lua je aktivní.
!pluglist
Doporučeno Lua Umístění skriptu
Udržujte Lua skripty ve vyhrazeném adresáři vlastněném uživatelem služby 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
Pokud vaše služba Verlihub běží jako jiný uživatel, vyměňte verlihub:verlihub se správným uživatelem a skupinou.
sudo chown -R vh:vh /usr/local/etc/verlihub/lua
sudo chown -R www-data:www-data /usr/local/etc/verlihub/lua
Nedělejte z adresářů skriptů Lua světově zapisovatelné. Vyhněte se chmod 777 /usr/local/etc/verlihub/lua.
Příklad Lua Skript
Vytvořte malý testovací skript:
sudo nano /usr/local/etc/verlihub/lua/test.lua
Příklad obsahu:
-- 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
Dostupné funkce Lua závisí na Verlihub Lua rozhraní API. Některé instalace vystavují pomocné objekty nebo funkce odlišně, proto porovnejte příklady s knihovnou skriptů Lua, kterou používá vaše verze Verlihub.
Načítání Lua skriptů
Poté, co je plugin Lua aktivní, lze skripty obvykle načítat prostřednictvím příkazů Lua nebo nakonfigurovaných adresářů skriptů.
Začněte kontrolou dostupných příkazů pluginu Lua zevnitř hubu:
!help lua
!plughelp lua
Pokud plugin podporuje výpis skriptů, načítání, uvolňování nebo opětovné načítání, můžete vidět příkazy podobné těmto:
!lua
!lslua
!loadlua
!unloadlua
!reloadlua
Názvy příkazů se mohou lišit mezi Verlihub sestaveními a verzemi pluginu.
Ověření Lua funguje
Ověřte nastavení po etapách. Nejprve potvrďte, že je plugin zaregistrován, a poté potvrďte, že je načten:
!lstplug
!pluglist
Poté zkontrolujte protokoly serveru pro zprávy pluginu Lua:
journalctl -u verlihub -n 100 --no-pager
Pokud Verlihub nespravuje systemd, zkontrolujte místo toho nakonfigurovaný adresář protokolu Verlihub. Mezi běžné lokality patří /var/log/verlihub a /usr/local/var/log/verlihub.
Vyhledejte položky protokolu související s Lua, když je protokol služby velký:
grep -i lua /var/log/verlihub/* 2>/dev/null
Výrobní doporučení
Použijte Lua pro malé vlastní chování, ne pro náročné zpracování. Kód Lua běží uvnitř procesu centra, takže špatný skript může ovlivnit chat, přihlášení nebo aktualizace seznamu uživatelů.
Dobrých Lua případů použití:
- Jednoduché příkazy
- Zprávy centra
- Uživatel kontroluje
- Lehká automatizace
- Malé integrační háčky
Nepoužívejte Lua pro:
- Dlouhotrvající úlohy na pozadí
- Těžké databázové dotazy
- Zpracování velkých souborů
- Blokování síťových hovorů
- CPU náročné smyčky
- Cokoli, co může zmrazit proces hubu
Otestujte skripty na pracovním centru, než je načtete do veřejného centra s připojenými uživateli.
Bezpečnostní poznámky
Pouze důvěryhodní správci by měli mít možnost nahrávat nebo upravovat skripty Lua.
Doporučená oprávnění:
sudo chown -R verlihub:verlihub /usr/local/etc/verlihub/lua
sudo chmod -R u=rwX,g=rX,o= /usr/local/etc/verlihub/lua
Nedovolte nedůvěryhodným uživatelům zapisovat soubory Lua. Neukládejte tajemství přímo ve skriptech Lua, pokud nejsou uzamčena oprávnění k souboru.
Ponechte příkazy pro správu zásuvných modulů pouze pro operátora nebo pouze pro správce. Běžní uživatelé by neměli mít možnost načítat, uvolňovat nebo nahrazovat skripty.
Odstraňování problémů
Soubor pluginu nebyl nalezen
Příznaky zahrnují Cannot load plugin, No such file nebo liblua_pi.so not found. Vyhledejte knihovnu a poté aktualizujte uloženou cestu k pluginu:
find /usr /usr/local -name 'liblua_pi.so' 2>/dev/null
!modplug lua -p /correct/path/to/liblua_pi.so
Plugin Lua se nezobrazuje v seznamu pluginů
Zkontrolujte, zda byl přidán. Pokud chybí, přidejte jej, označte jej jako aktivní a načtěte jej:
!lstplug
!addplug lua -p /usr/local/lib/liblua_pi.so -a 1 -d Support for Lua scripts.
!modplug lua -a 1
!onplug lua
Plugin existuje, ale nepodařilo se jej načíst
Zkontrolujte závislosti sdílených knihoven a vyhledejte chybějící knihovny Lua:
ldd /usr/local/lib/liblua_pi.so
not found
Pokud chybí knihovny Lua, nainstalujte odpovídající runtime balíček Lua.
sudo apt install lua5.4 liblua5.4-0
sudo apt install lua5.3 liblua5.3-0
Skript se nespustí
Zkontrolujte cestu skriptu, oprávnění k souboru a protokoly Verlihub. Ověřte také, že plugin Lua podporuje rozhraní API skriptu používané skriptem.
ls -lah /usr/local/etc/verlihub/lua
journalctl -u verlihub -n 100 --no-pager
Hub se po načtení skriptu stane nestabilním
Uvolněte skript nebo deaktivujte plugin Lua. Pokud centrum nereaguje, zastavte Verlihub z shellu a přesuňte skript z adresáře 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
Doporučený pracovní postup správce
- Potvrďte, že plugin Lua existuje.
- Přidejte plugin s
!addplug. - Povolte jej pomocí
!modplug. - Začněte tím
!onplug. - Potvrďte to pomocí
!pluglist. - Vytvořte vyhrazený adresář skriptů Lua.
- Přidejte jeden malý testovací skript.
- Zkontrolujte Verlihub protokoly.
- Přidávejte produkční skripty jeden po druhém.
- Před provedením změn si uchovávejte zálohy pracovních skriptů.
Verlihub Lua Knihovna skriptů
Knihovna skriptů Verlihub Lua obsahuje ukázkové skripty a opakovaně použitelný kód Lua pro přizpůsobení rozbočovače. Použijte jej jako referenci pro podporované funkce, zavěšení událostí a vzory příkazů.
Při použití skriptů z knihovny:
- Před instalací skriptu zkontrolujte.
- Potvrďte, že odpovídá vaší verzi Verlihub.
- Nejprve to otestujte na neprodukčním uzlu.
- Zkontrolujte pevně zakódované cesty, názvy hub, přezdívky operátora nebo nastavení databáze.
- Před úpravou si uložte zálohu původního skriptu.