Un ghid pentru scrierea scripturilor pentru rotitele mikrotik

1. MANUALUL DE LIDERE PENTRU SCRIPTELE

Acest manual este o introducere în limba puternică de scripting încorporată pentru RouterOS.

Rândul de limbaj scripting oferă posibilitatea de a automatiza sarcinile prin executarea anumitor scripturi asociate cu orice evenimente de către utilizator.







Scripturile pot fi stocate într-un depozit (depozit) sau pot fi scrise direct în consola. Evenimentele care declanșează executarea script-uri sunt generate de sistemul de monitorizare planificator de trafic de utilitate și de utilitate NetWatch, dar nu sunt limitate la aceste generatoare.

1.1 STRUCTURA ECHIPEI

Scripturile pentru RouterOS constau din comenzi. Comenzile sunt executate una după alta până la sfârșitul scriptului sau când apare o eroare în timpul executării.

Consola utilizează următoarea sintaxă de comandă:

[prefix] [cale] comanda [uparam] [param = [valoare]. param = [valoare]]

[prefix] - poate lua următoarele caractere, ":" sau "/", care definește o comandă, cum ar fi ICE sau calea.
[cale] - calea relativă la nivelul meniului dorit.
comanda - una dintre posibilele comenzi încorporate definite de nivelul de meniu.
[uparam] - un parametru fără nume, pisica. Ar trebui să fie definită dacă comanda încorporată necesită acest lucru.
[params] - o secvență de parametri numiți cu valori.

* Tot ceea ce este menționat în paranteze pătrate este o parte opțională a echipei.

Fiecare comandă se termină cu un ";" sau la sfârșitul unei linii. În unele cazuri, aceste simboluri nu sunt necesare pentru a termina comanda. O comandă în interiorul (), [] sau <> nu are nevoie de astfel de simboluri.







Fiecare comandă din cadrul unei alte comenzi începe și se termină cu paranteze pătrate [] (comenzi de conectare):

pune [/ ip route get [găsi gateway = 1.1.1.1]];

O comandă poate fi alcătuită din mai multe linii, unite printr-un simbol special. Consultați "Combinarea comenzilor."

* Echipa și EOL (sfârșitul liniei) *

O comandă este o secvență de caractere care se termină într-o secvență EOL. Se poate utiliza oricare dintre secvențele EOL standard:

- Unix = ASCII LF
- Windows = ASCII CR LF
- Mac = ASCII CR

dacă ($ a = true \
și $ b = false)<:put “$a $b”;>
: dacă ($ a = true \ # a eșuat încercarea
și $ b = false)<:put “$a $b”;>
# comment \
continuare - invalid (eroare de sintaxă)

* Spații între jetoane *

Spațiile sunt folosite pentru a separa token-urile. Este necesar un spațiu între două jetoane numai dacă unirea lor poate fi interpretată ca un alt simbol. exemplu:

<
: local un adevărat; : local b false;
# nu sunt necesare spații
: pun (ab);
sunt necesare # spații
: pun (a și b);
>

Spațiile nu sunt permise în următoarele construcții:

- =
- de la =, la =, pas =, in =, do =, alt =

# greșit:
: pentru i de la = 1 la = 2 do = <:put $i>
# Corect:
: pentru i de la = 1 la = 2 do =<:put $i>
: pentru i de la = 1 la = 2 do =<:put $i>

# greșit
/ route route add ip = 3.3.3.3
# corect
/ route route add ip = 3.3.3.3

Domeniul de aplicare global, într-o zonă diferită, este vizibilitatea zonei implicite pentru scenariu. Acesta este creat automat și există întotdeauna.

Utilizatorul poate defini domeniile lor folosind paranteze <>. Aceste domenii sunt numite locale. exemplu:

: local 3;
: local b 4;
: pune ($ a + $ b);
>
# comanda de mai jos este nevalidă, deoarece variabila b nu este definită în acest domeniu
: pune ($ a + $ b);
>

Notă importantă: fiecare comandă din consola este procesată în domeniul său local.

[admin @ MikroTik]>: local myVar a;
[admin @ MikroTik]>: pune $ myVar
eroare de sintaxă (rândul 1, coloana 7)

Important: Nu definiți variabile globale în cadrul domeniilor locale.

1.2 CUVINTE REZERVATE

Următoarele cuvinte sunt rezervate și nu pot fi utilizate, cum ar fi numele variabilelor sau funcțiilor:







Trimiteți-le prietenilor: