Při práci se síťovými zařízeními MikroTik je často nutné porovnávat řádky nebo provádět akce v závislosti na obsahu řádků. Porovnávání řetězců je důležitou součástí programování a automatizace zařízení. V tomto článku se podíváme na to, jak napsat a použít skript k porovnání řádků v Mikrotiku.
Jedním z nejjednodušších způsobů, jak porovnat řetězce v Mikrotiku, je použití srovnávacího operátora "if". Pomocí tohoto příkazu můžete zkontrolovat, zda jsou dva řádky stejné nebo ne. Můžeme například zkontrolovat, zda se hodnota proměnné shoduje s nějakým zadaným textem. Pokud jsou hodnoty stejné, můžete provést určitou akci, například změnit nastavení zařízení nebo odeslat oznámení.
Dalším způsobem, jak porovnávat řádky, je použití funkce "find". Funkce "find" vám umožňuje najít podstavec v řádku a vrátit pozici prvního vstupu nebo -1, pokud takový podstavec neexistuje. Tuto funkci lze použít ke kontrole, zda určitý řádek obsahuje danou podstavec. Můžeme například zkontrolovat, zda název zařízení obsahuje určité slovo nebo frázi.
Příklad: Pokud název zařízení obsahuje slovo "switch", postupujte podle určitých kroků.
Na základě výše uvedeného je srovnání řetězců v Mikrotiku důležitým aspektem při řešení úloh automatizace síťových zařízení. Dovednost psaní a používání skriptů pro porovnávání řádků vám pomůže efektivně spravovat a konfigurovat vaši síť MikroTik.
Koncept skriptu v MikroTik
V MikroTik je skript soubor příkazů, který se provádí v určité sekvenci. Skripty v Mikrotiku se používají k automatizaci rutinních úkolů a usnadnění správy sítě. Umožňují automaticky provádět řadu příkazů, které musí být v určitých situacích splněny.
Skripty v MikroTik lze psát v jazyce příkazového rozhraní (CLI) a také v programovacím jazyce Lua nebo Python pomocí speciálních skript.
Skripty v MikroTik lze použít k řešení různých úkolů, jako je konfigurace a konfigurace zařízení, monitorování a ladění sítě, automatizace zálohování a další. Skripty lze spustit ručně nebo podle plánu, stejně jako pokud dojde k určitým událostem, jako je připojení nebo vypnutí zařízení.
Pomocí skriptů v Mikrotiku lze výrazně zvýšit efektivitu sítě, zkrátit čas na dokončení úkolů a minimalizovat možnost chyb. Usnadňují také automatické nastavení a přizpůsobení velkého počtu zařízení MikroTik, což z nich činí nepostradatelné nástroje pro správce sítě.
Jak napsat srovnávací skript řetězců v MikroTik
Porovnávací operátor ( = ) umožňuje porovnat dva řádky po sobě. Pokud se znaky ve dvou řádcích shodují, operace srovnání bude pravdivá a vrátí hodnotu true. V opačném případě bude operace falešná a vrátí hodnotu false.
Příklad použití srovnávacího operátora (=):
:local str1 "hello":local str2 "world":if ($str1 = $str2) do= elseFunkce Match soulad umožňuje porovnat řetězec se šablonou. Šablonu lze nastavit pomocí regulárního výrazu nebo prostého textu.
Příklad použití funkce shody match:
:local str "hello world":if ([/system script environment get str]=="hello world") do= elseV tomto příkladu funkce match zkontroluje, zda se hodnota proměnné "str" shoduje s řádkem "hello world". Pokud se shoduje, pak bude operace srovnání pravdivá a provede se blok kódu uvnitř podmíněného operátora. V opačném případě bude spuštěn blok else.
Pomocí srovnávacího operátora (=) nebo funkce shody match v Mikrotiku je tedy možné napsat skript pro srovnání řádků a provádět různé akce v závislosti na výsledku srovnání.
Definice a oznámení proměnných
V jazyce MikroTik jsou proměnné velmi důležité. Používají se k ukládání dat a poskytují schopnost pracovat se složitými operacemi a podmínkami.
Proměnné v MikroTik jsou deklarovány pomocí symbolu " $ " a mohou obsahovat písmena, číslice a podtržítka. Oznámení proměnné probíhá pomocí příkazu přiřazení"=".
$interface = "ether1";
V tomto příkladu je proměnná $interface oznámena s hodnotou "ether1". Zde je "ether1" řetězec uzavřený ve dvojitých uvozovkách. Chcete-li vyhlásit proměnnou s hodnotou čísla nebo IP adresy, uvozovky se nepoužívají.
Je také možné inzerovat proměnné bez přiřazení hodnoty:
$variable;
V případě, že proměnná není přiřazena hodnota, bude rovna prázdnému řádku.
Použití proměnných usnadňuje práci s daty a činí kód čitelnějším. Mohou být použity v podmínkách, příkazech a výrazech. Hodnotu proměnné lze použít místo konkrétních hodnot, což umožňuje snížit počet kódu a usnadnit jeho modifikaci.
Definice a oznámení proměnných v MikroTik je důležitým aspektem, který je třeba vidět pro úspěšné psaní skriptů.
Získání hodnot pro srovnání
Pro srovnání řádků v Mikrotiku je nutné mít přístup k hodnotám, které budou porovnávány. V této části se podíváme na několik způsobů, jak získat hodnoty pro další srovnání.
| Způsob | Popis |
|---|---|
| Získání hodnoty z proměnné | Jedním z nejjednodušších způsobů, jak získat hodnotu, je použití proměnných. V Mikrotiku jsou proměnné nastaveny pomocí příkazu = a mohou obsahovat různé typy dat, včetně řádků. |
| Získání hodnoty z týmu | Pokud potřebujete získat hodnotu z příkazu, můžete použít příkaz = a příkaz, který vrátí požadovanou hodnotu. Například příkaz / system identity print vrací aktuální název zařízení. |
| Získání hodnoty ze systému souborů | Pokud potřebujete získat hodnotu ze souboru , můžete použít příkaz = a příkaz /file print, který vám umožní zobrazit obsah souborového systému. Poté můžete ke čtení a zápisu obsahu souboru použít příkazy /file set a /file get. |
Výsledné hodnoty lze uložit do proměnných pomocí příkazu = pro další použití ve srovnání řádků.
Při použití určitých metod získávání hodnot pro srovnání je třeba vzít v úvahu, že výsledné hodnoty mohou obsahovat mezery nebo jiné znaky, které mohou ovlivnit výsledek srovnání. Před porovnáním řádků se proto doporučuje provést potřebné zpracování hodnot, například pomocí funkce: put .
Srovnání řetězců a rozhodování
Pro srovnání řádků v Mikrotiku lze použít srovnávací operátory, jako je rovno ( = ), ne (!= ), více ( > ), méně (<), больше или равно (>= ), méně nebo rovno (<=).
Například ke kontrole, zda jsou dva řádky stejné, lze použít příkaz"stejné":
:if ("строка1" == "строка2") do= else=
V tomto příkladu, pokud jsou řádek 1 a řádek 2 stejné, zobrazí se Zpráva "řádky jsou stejné", jinak se zobrazí zpráva "řetězce nejsou stejné".
K určení více nebo méně než dvou řádků lze také použít operátory srovnání. Například:
:local string1 "строка1";:local string2 "строка2";:if ($string1 > $string2) do= else=
V tomto příkladu, pokud je řádek 1 větší než řádek 2, Zobrazí se Zpráva "řádek 1 větší než řádek 2", jinak se zobrazí zpráva "Řádek 2 větší než řádek 1".
Porovnání řádků a rozhodování v Mikrotiku umožňuje automatizaci mnoha úkolů a činí skripty flexibilnějšími a přizpůsobivějšími měnícím se podmínkám. Použijte srovnávací operátory a rozhodujte se na základě výsledků porovnávání řetězců ve svých skriptech MikroTik!
Jak používat skript pro porovnávání řetězců v MikroTik
Skripty pro porovnání řádků v Mikrotiku umožňují automatizovat proces ověřování shody řádků, což usnadňuje provádění různých úkolů v síti. Porovnání řádků může být užitečné například pro filtrování provozu podle určitých parametrů nebo pro provádění akcí v závislosti na shodě řádků.
Níže je uveden příklad jednoduchého srovnávacího skriptu řádků v Mikrotiku:
/system scriptadd name=compare-strings policy=write source= else=>
V tomto příkladu oznamujeme dvě proměnné: sourceString a targetString a přiřadit jim hodnoty "example". Poté porovnáme hodnoty těchto proměnných pomocí příkazu"=". Pokud se řádky shodují, zobrazí se Zpráva "Strings are equal". V opačném případě se zobrazí zpráva "Strings are not equal".
Po vytvoření skriptu jej můžeme spustit přidáním příkazu do konzole:
/system script run compare-strings
Skript tak usnadňuje porovnávání řádků v Mikrotiku a provádění příslušných akcí v závislosti na výsledku srovnání. Použití skriptů pro porovnávání řetězců je výkonným nástrojem pro automatizaci úloh v síti a zvýšení efektivity administrátora.