Você está na página 1de 21

Manual de linguagem de script

Este manual fornece introdução ao RouterOS embutidos poderosa linguagem de script.

Host de script fornece uma maneira de automatizar algumas tarefas de manutenção roteador por

meio da execução de scripts definidos pelo usuário delimitadas a alguma ocorrência de eventos.

Scripts podem ser armazenados em repositório de scripts ou pode ser escrito diretamente

para consolar . Os eventos usados para acionar a execução de scripts incluem, mas não estão

limitados ao Sistema Scheduler , a ferramenta de monitoramento de tráfego , e as Netwatch

Ferramenta eventos gerados.

Estrutura de linha
RouterOS roteiro é dividido em número de linhas de comando. As linhas de comando são

executados um por um até o final do script ou até ocorrer erro de execução.

Linha de comando

Consola RouterOS utiliza seguinte sintaxe de comando:

[prefix] [path] command [uparam] [param=[value]] .. [param=[value]]

 [Prefixo] - ":" ou caractere "/" que indica se o comando é ICE ou caminho. Pode ou pode
não ser necessária.

 [Caminho] - caminho relativo ao nível de menu desejado. Pode ou pode não ser
necessária.

 comando - um dos comandos disponíveis no nível de menu especificado.


 [Uparam] - parâmetro sem nome, deve ser especificado se o comando exige.
 [Params] - seqüência de parâmetros nomeados, seguido pelos respectivos valores

O final da linha de comando é representado pelo símbolo ";" ou de nova linha. Às vezes "," ou de

nova linha é não necessário para acabar com a linha de comando.

Comando único dentro (), [] or {} não requer qualquer sinal de fim de comando. Fim de

comando é determinada pelo conteúdo do roteiro inteiro

: If (true) = {fazer: colocar "lala"}

Cada linha de comando dentro de outra linha de comando inicia e termina com colchetes

"[]" (concatenação de comando) .


: Colocar [/ ip route get [encontrar porta de entrada = 1.1.1.1]];

Observe que o código acima contém três linhas de comando:

 : Colocar
 / Ip route chegar
 encontrar porta de entrada = 1.1.1.1

Linha de comando pode ser construído a partir de mais de uma linha física, seguindo as regras

juntando linha .

Linha Física

A linha física é uma seqüência de caracteres terminada por um (EOL) seqüência de fim-de-

linha. Qualquer uma das sequências de terminação de linha padrão da plataforma pode ser

usado:

 unix - LF ASCII;
 janelas - ASCII CR LF;
 mac - ASCII CR;

Convenções padrão C para caracteres de nova linha pode ser usada (o personagem n \).

Comentários

Um comentário começa com um caracter de hash (#) e termina no fim da linha física. Espaços

em branco ou quaisquer outros símbolos não são permitidos antes símbolo hash. Os comentários

são ignorados pela sintaxe. Se o caráter (#) aparecem corda dentro dele não é considerado um

comentário.

Exemplo

# Isto é um comentário

# Comentário ruim

: Um mundial; # Comentário ruim

: Pt myStr "lala # isto não é um comentário"

Linha que une

Duas ou mais linhas físicas podem ser unidas em linhas lógicas usando caractere de barra

invertida (\). A linha que termina em uma barra invertida não pode carregar um comentário. Uma

barra invertida não continuar um comentário. Uma barra invertida não continua um símbolo,
exceto para strings literais. A barra invertida é ilegal em outro lugar em uma linha de fora de

uma string literal.

Exemplo

: If ($ a = true \

e $ b = false) = {fazer: colocar "$ a $ b"; }

: If ($ a = true \ # ruim comentário

e $ b = false) = {fazer: colocar "$ a $ b"; }

# Comentário \

continuou - inválido (erro de sintaxe)

Espaço em branco entre os tokens

O espaço em branco pode ser usado para separar os tokens. O espaço em branco é necessário

entre dois tokens somente se sua concatenação poderiam ser interpretadas como um símbolo

diferente. Exemplo:

: Local, um verdadeiro; : Local de b falso;

# Espaços em branco não é necessária

: Colocar (a && b);

# Espaço em branco é necessária

: Colocar (a e b);

Espaços em branco não são permitidos

 entre "<parâmetro> = '


 entre "from = '' a '=' passo = '' = '' em fazer = '' else = '

Exemplo:

#incorrect:

: For i from = 1 a = 2 do = {: colocar US $ i}


sintaxe #correct:

: For i from = 1 a = 2 do = {: colocar US $ i}

: For i from = 1 a = 2 do = {: colocar US $ i}

#incorrect

/ Ip route adicionar porta de entrada = 3.3.3.3

#correct

/ Ip route adicionar porta de entrada = 3.3.3.3

Scopes

As variáveis podem ser usados apenas em certas regiões do script. Essas regiões são chamadas

de escopos. Âmbito determina a visibilidade da variável. Existem dois tipos de escopos -


globais e locais. Uma variável declarada dentro de um bloco é acessível somente dentro desse

bloco e os blocos fechados por ela, e somente após o ponto de declaração.

Escopo global

Escopo escopo ou raiz global é escopo padrão do script. Ele é criado automaticamente e não pode

ser desligado.

Âmbito local

O usuário pode definir seus próprios grupos para bloquear o acesso a certas variáveis, estes

âmbitos são chamados escopos locais. Cada escopo local está entre chaves ("{}").

: Local, a 3;

: B local, 4;

: Colocar ($ a + $ b);

#line abaixo irá gerar erro

: Colocar ($ a + $ b);

No código acima variável b tem escopo local e não estará acessível após chaveta fechado.
Nota: Cada linha escrita no terminal é tratado como escopo local

Assim, por exemplo, variável local definido não será visível na próxima linha de comando e irá

gerar erro de sintaxe

[Admin @ MikroTik]>: minhaVar local, um;

[Admin @ MikroTik]>: colocar US $ minhaVar

erro de sintaxe (linha 1 coluna 7)

Aviso: Não definir variáveis globais dentro de âmbitos locais.

Note que, mesmo variável pode ser definida como global, ele estará disponível apenas a partir de

seu escopo, a menos que ele já não estiver definido.

: Local, a 3;

: B global de 4;

: Colocar ($ a + $ b);

Código acima irá gerar um erro.

Palavras-chave
As seguintes palavras são palavras-chave e não podem ser usados como nomes de variáveis e de

funções:

ou não e em

Delimitadores
Os seguintes símbolos servem como delimitadores na gramática:

() [] {}:; $ /

Os tipos de dados
Linguagem de script RouterOS tem seguintes tipos de dados:
Tipo Descrição
NUM (número) - 64 bits assinado inteiro, possível entrada hexadecimal;

bool (booleano) - Valores pode abelha true ou false ;

str (string) - Seqüência de caracteres;

ip - Endereço IP;

IP6-prefix - Prefixo IPv6

id (identificação interna) - Valor hexadecimal prefixado por sinal '*'. Cada item do menu tem atribuído o número único -
ID interno;

tempo - Data e hora de valor;

ordem - Sequência de valores organizados em uma matriz;

zero - Padrão tipo de variável se nenhum valor é atribuído;

Seqüências de escape constantes

Seqüências de escape a seguir podem ser usados para definir certo caráter especial dentro de

string:

\" Insira aspas duplas

\\ Insira barra invertida

\N Inserir uma nova linha

\R Insira retorno de carro

\T Insira guia horizontal

\$ Saída $ caráter. Caso contrário, $ é usado para ligar variável.

\? Saída? personagem. Caso contrário? é usado para imprimir "ajuda" no console.

\_ - Espaço

\A - BEL (0x07)

\B - Backspace (0x08)

\F - Avanço de formulário (0xFF)

\V Inserir tabulação vertical

\ Xx Caráter impressão de valor hexadecimal. Número hexadecimal deve usar letras maiúsculas.

Exemplo

: Coloque "\ 48 \ 45 \ 4C \ 4C \ 4F \ r \ nEste \ r \ nis \ r \ na \ r \


nTest";

que irá mostrar na exposição


HELLO
This
is
a
test

Operadores
Operadores aritméticos

Operadores aritméticos usuais são suportados no RouterOS linguagem de script

Opearator Descrição Exemplo


"+" Além binário :put (3+4);

"-" subtração binária :put (1-6);

"*" multiplicação binária :put (4*5);

"/" divisão binária :put (10 / 2); :put ((10)/2)

"-" negação unária { :local a 1; :put (-a); }

Nota: para a divisão de trabalho que você tem que usar chaves ou
espaços em torno de dividendos assim que não é confundido como
endereço IP

Operadores Relacionais
Opearator Descrição Exemplo
"<" menos :put (3<4);

">" maior :put (3>4);

"=" igual :put (2=2);

"<=" inferior ou igual

"> =" maior ou igual

"! =" não igual

Operadores lógicos
Opearator Descrição Exemplo
"!", "Não" NÃO lógico :put (!true);

"&&", "E" E lógico :put (true&&true)

"||", "Ou" OU lógico :put (true||false);

"Na" :put (1.1.1.1/32 in 1.0.0.0/8);

Operadores bit a bit

Operadores bit a bit estão trabalhando em número e endereço ip tipos de dados .

Opearator Descrição Exemplo


"~" inversão bit :put
(~0.0.0.0)

"|" OR bit a bit. Executa operação lógica OR em cada par de bits correspondentes. Em cada
par o resultado é "1", se um dos bits ou ambos os bits forem "1", caso contrário, o
resultado é "0".

"^" XOR. O mesmo que OR, mas o resultado em cada posição é "1", se dois bits não são
iguais, e "0" se os bits são iguais.

"&" AND bit a bit. Em cada par o resultado é "1" se o primeiro e segundo bit é "1". Caso
contrário, o resultado é "0".

"<<" desvio à esquerda por determinada quantidade de bits

">>" deslocamento para a direita por determinada quantidade de bits

Os operadores de concatenação
Opearator Descrição Exemplo
"." concatena duas strings :put (“concatenate” . “ “ .
“string”);

"," concatena duas matrizes ou adiciona elemento de matriz :put ({1;2;3} , 5 );

É possível adicionar os valores das variáveis para strings sem operador de concatenação:

: MinhaVar global "mundo";

: Colocar ("Olá" $ myVar.);

# Próxima linha faz o mesmo que acima

: Put "Olá $ myVar";

Usando $ [] e $ () na seqüência, é possível adicionar expressões dentro de strings:

: Local, a 5;

: B local, 6;

: Colocar "5x6 = $ ($ a * $ b)";

: Colocar "Temos $ [: len [ip route / encontrar]] rotas";

Outros Operadores
Opearator Descrição Exemplo
"[]" substituição de comando. Pode conter :put [ :len "my test string"; ];
apenas linha de comando único
"()" sub expressão ou operador de agrupamento :put ( "value is " . (4+5));

"$" operador de substituição :global a 5; :put $a;

"~" operador binário que corresponde valor Imprimir todas as rotas qual gateway termina com 202
contra POSIX estendido expressão regular /ip route print where gateway~"^[0-9
\\.]*202"

"->" Obter um elemento array pelas chaves

[Admin @ x86]>: aaa mundial {a = 1; b =


2}

[Admin @ x86]>: colocar ($ aaa -> "a")

[Admin @ x86]>: colocar ($ aaa -> "b")

Variáveis
Linguagem de script tem dois tipos de variáveis:

 mundial - acessível a partir de todos os scripts criados pelo usuário atual, definido
pelo mundial de palavras-chave;

 local - acessível apenas dentro do atual escopo , definido por local de palavra-chave.

Nota: A partir da v6.2 não pode haver variáveis indefinidas. Quando a


variável é indefinido parser vai tentar olhar para as variáveis definidas,
por exemplo, DHCP lease-script ou Hotspot on-login

Cada variável, exceto para construído em variáveis RouterOS, deve ser declarada antes do uso de

palavras-chave locais ou globais. As variáveis indefinidas será marcado como indefinido e irá

resultar em erro de compilação. Exemplo:

# Seguinte código irá resultar em erro de compilação, porque minhaVar é usado


sem declaração

: Set minhaVar "meu valor";

: Colocar US $ minhaVar

Código correto:

: MinhaVar local;

: Set minhaVar "meu valor";


: Colocar US $ myVar;

A exceção é quando o uso de variáveis definidas, por exemplo, por arrendamento-script DHCP

Script / sistema

add name = política myLeaseScript = \

ftp, reboot ler, escrever, política, teste, WinBox, password, sniff,


sensível, api \

source = ": log info \ $ leaseActIP \ r \

\ N: log info \ $ leaseActMAC \ r \

\ N: log info \ $ leaseServerName \ r \

\ N: info log \ $ leaseBound "

/ Ip dhcp-server set myServer lease-script = myLeaseScript

Os caracteres válidos nos nomes de variáveis são letras e algarismos. Se o nome da variável

contém qualquer outro personagem, em seguida, o nome da variável deve ser colocado entre

aspas duplas. Exemplo:

nome da variável #valid : MinhaVar local;

nome da variável #invalid

: Local de meu-var;

#valid porque aspas duplas

: Global "minha-var";

Se a variável é inicialmente definida sem valor, em seguida, tipo de dados variável é definida

para zero, caso contrário, o tipo de dados é determinado automaticamente pelo mecanismo de

script. Por vezes, a conversão de um tipo de dados para outro é necessária. Ele pode ser

conseguida utilizando comandos de conversão de dados . Exemplo:

corda #convert para array

: MyStr local "1,2,3,4,5";


: Colocar [: typeof $ myStr];

: MyArr locais [: ToArray $ myStr];

: Colocar [: typeof $ myArr]

Os nomes das variáveis são case sensitive.

: MinhaVar local "Olá"

# Seguinte linha irá gerar erro, porque MYVAR variável não está definida

: Colocar US $ MYVAR

# Código correto

: Colocar US $ minhaVar

Conjunto de comandos sem valor será un-definir a variável (retirar do meio ambiente, de novo na

v6.2)

#remove variável de ambiente

: MinhaVar global "myValue"

: Set minhaVar;

Comandos
Os comandos globais

Cada comando global deve começar com ":" Sinal, caso contrário ele será tratado como variável.

Comando Sintaxe Descrição Exemplo


/ vá ao menu raiz

.. voltar a um nível de menu

? listar todos os comandos de menu


disponíveis e breves descrições

global :global <var> [<value>] definir variável global :global myVar


"something"; :put $myVar;

local :local <var> [<value>] definir variável local { :local myLocalVar "I am
local"; :put $myVar; }

bip :beep <freq> <length> beep alto-falante embutido

atraso :delay <time> nada fazem para um determinado


período de tempo

colocar :put <expression> colocar o argumento fornecido para


consolar
len :len <expression> comprimento seqüência de retorno ou :put [:len "length=8"];
matriz contagem de elementos

typeof :typeof <var> tipo de retorno variável de dados :put [:typeof 4];

escolher :pick <var> gama de elementos ou substring :put [:pick "abcde" 1 3]


<start>[<end>] voltar. Se a posição final não é
especificado, irá retornar apenas um
elemento de uma matriz.

log :log <topic> <message> escrever mensagem de log do :log info "Hello from
sistema .Tópicos disponíveis script";
são "debug, error, info and
warning"

tempo :time <expression> voltar intervalo de tempo necessário :put [:time {:for i
para executar o comando from=1 to=10 do={ :delay
100ms }}];

conjunto :set <var> [<value>] atribuir valor à variável declarada. :global a; :set a true;

encontrar :find <arg> <arg> posição da substring ou matriz :put [:find "abc" "a" -
<start> elemento voltar 1];

ambiente :environment print imprimir informação variável :global myVar true;


<start> inicializada :environment print;

terminal comandos do terminal relacionado

erro :error <output> Gerar erro console e parar de executar


o script

analisar :parse <expression> analisar corda e voltar comandos de :global myFunc [:parse
console analisado. Pode ser usado ":put hello!"];
como função. $myFunc;

resolver :resolve <arg> voltar endereço IP de determinado :put [:resolve


nome DNS "www.mikrotik.com"];

ToArray :toarray <var> converter variável de matriz

tobool :tobool <var> converter variável para booleano

reumatóide :toid <var> converter variável para identificação


interna

ToIP :toip <var> converter variável para o endereço IP

toip6 :toip6 <var> converter variável de endereço IPv6

tonum :tonum <var> converter variável para inteiro

tostr :tostr <var> converter variável para string

totime :totime <var> converter a variável tempo

Comandos específicos do menu

Comandos comuns

Após os comandos disponíveis da maioria dos sub-menus:

Comando Sintaxe Descrição


adicionar add <param>=<value>..<param>=<value> adicionar novo item

remover remove <id> remover o item selecionado

permitir enable <id> permitir item selecionado

incapacitar disable <id> desativar o item selecionado

conjunto set <id> <param>=<value>..<param>=<value> alterar o parâmetro itens selecionados, mais do que
um parâmetro pode ser especificado no
momento.Parâmetro pode ser desactivado,
especificando '!' antes de parâmetro.

Exemplo:
/ip firewall filter add chain=blah
action=accept protocol=tcp port=123
nth=4,2
print
set 0 !port chain=blah2 !nth
protocol=udp

obter get <id> <param>=<value> obter os itens selecionados valor do parâmetro

impressão print <param><param>=[<value>] itens do menu de impressão. Saída depende de


parâmetros de impressão especificadas. A maioria
dos parâmetros de impressão comum estão
descritos aqui

exportação export [file=<value>] configuração de exportação a partir do menu atual e


seus sub-menus (se houver). Se o parâmetro do
arquivo é de saída especificado será escrito para o
arquivo com extensão ".rsc ', caso contrário, a saída
será impressa para consolar. Comandos exportados
podem ser importados pelo comando de importação

editar edit <id> <param> editar itens selecionados propriedade em built-


in editor de texto

encontrar find <expression> Retorna lista de números internos para os itens que
são acompanhadas por determinada expressão. Por
exemplo: :put [/interface find
name~"ether"]

importação

Importar comando está disponível no menu de raiz e é usado para importar a configuração de

arquivos criados porexportação de comando ou escritas manualmente com a mão.

parâmetros de impressão

Vários parâmetros estão disponíveis para o comando de impressão:

Parâmetro Descrição Exemplo


anexar

como valor saída de impressão como matriz de parâmetros e seus valores :put [/ip address
print as-value]
breve imprimir breve descrição

detalhe imprimir descrição detalhada, a saída não é tão legível como breve saída, mas
pode ser útil para visualizar todos os parâmetros

contar-only imprimir somente a contagem de itens de menu

arquivo imprimir saída para o arquivo

seguir imprimir todas as entradas atuais e acompanhar novas entradas até ctrl-c é /log print follow
pressionado, muito útil ao visualizar as entradas de log

siga-only impressão e acompanhar apenas novas entradas até ctrl-c é pressionado, muito /log print follow-
útil ao visualizar as entradas de log only

a partir de parâmetros apenas do item especificado impressão /user print


from=admin

intervalo A impressão contínua de saída no intervalo de tempo selecionado, útil para /interface print
rastrear mudanças onde follow não é aceitável interval=2

conciso Mostrar detalhes em formato compacto e máquina amigável

valor-lista apresentam valores um por linha (bons para fins de análise)

sem- Se a saída não se encaixam na tela do console, então não pare, imprimir todas
paginação as informações em uma única peça

onde expressões seguidos por onde o parâmetro pode ser usado para filtrar entradas /ip route print
emparelhadas where
interface="ether1"

Mais do que um parâmetro pode ser especificado em um momento, por exemplo, /ip route

print count-only interval=1 where interface="ether1"

Loops e instruções condicionais


Loops
Comando Sintaxe Descrição
do..while :do { <commands> } while=( <conditions> ); :while ( <conditions> ) do={ executar
<commands> }; comandos
até que
determinada
condição
seja
atendida.

por :for <var> from=<int> to=<int> step=<int> do={ <commands> } executar


comandos
ao longo de
um
determinado
número de
iterações

foreach :foreach <var> in=<array> do={ <commands> }; executar


comandos
para cada
um dos
elementos
em lista

Instrução condicional
Comando Sintaxe Descrição
se :if(<condition>) do={<commands>} else={<commands>} Se uma determinada condição é true ,
<expression> então executar comandos no do bloco,
caso contrário executar comandos
na else quadra, se especificado.

Exemplo:

: MyBool locais verdadeiro;

: If ($ myBool = false) = {fazer: colocar "valor é false"} else = {: colocar


"valor é true"}

Funções
Linguagem de script não permite criar diretamente as funções, no entanto, pode escrever:

comando analisar como uma solução alternativa.

A partir de uma nova sintaxe v6.2 é adicionado para definir mais fácil tais funções e até mesmo

passar parâmetros.Também é possível retornar o valor da função com: comando de retorno.

Veja os exemplos abaixo:

função #define e executá-lo

: MyFunc mundial do = {: colocar "Olá da função"}

$ MyFunc

saída:

Olá da função

#pass argumentos para a função

: MyFunc mundial do = {: colocar "arg a = $ a"; : Colocar "arg '1' = $ 1"}

MyFunc $ a = "este é arg um valor" "este é o valor arg1"


saída:

arg a = arg este é um valor

arg '1' = esta é valor arg1

Observe que há duas maneiras como passar argumentos:

 passar arg com nome específico ("a" no nosso exemplo)

 passar o valor sem nome arg, arg, nesse caso, "1", "2", .. "n" são utilizados.

Retorno exemplo

: MyFunc mundial do = {: return ($ a + $ b)}

: Colocar [$ myFunc a = 6 b = 2]

saída:

Você pode até mesmo clonar script existente do ambiente de script e usá-lo como função.

#Adicione roteiro

Script / sistema de add name = fonte myscript = ": colocar \" Olá $ minhaVar
\ ""!

: Pt myFunc [: analisar [/ script sistema get source myscript]]

MyFunc $ myVar = mundo

saída:

Olá Mundo!

Aviso: Se a função contém variável global definida, cujo nome


corresponde ao nome do parâmetro passado, variável então definido
globalmente é ignorado, para compatibilidade com scripts escritos para
versões mais antigas. Este recurso pode mudar em versões
futuras. Evite o uso de parâmetros com o mesmo nome como
variáveis globais.

Por exemplo:
: My2 global "123"

: MyFunc mundial do = {: my2 global; : Colocar US $ my2; : Conjunto my2


"lala"; : Colocar US $ my2}

$ MyFunc my2 = 1234

: Colocar "valor global de US $ my2"

Saída será:

1.234

lala

valor global de 123

Exemplo função aninhada

Nota: para chamar uma outra função seu nome precisa ser declarado (o
mesmo que para as variáveis)

: FuncA mundial do = {:} return 5

: FuncB mundial do = {

: FuncA global;

: Return ([$ funcA] + 4)

: Colocar [$ funcB]

Saída:

Detectar erros em tempo de execução


A partir de script v6.2 tem capacidade de detectar erros em tempo de execução.

Por exemplo, [code]: reslove [/ code] comando se não irá lançar um erro e quebrar o script.

[Admin @ MikroTik]> {: colocar [: resolver www.example.com]; : Colocar


"lala";}
falha: nome dns não existe

Agora queremos pegar esse erro e siga o nosso roteiro:

: Do {

: Colocar [: resolver www.example.com];

} On-error = {: colocar "resolvedor falhou"};

: Colocar "lala"

saída:

resolvedor falhou

lala

Operações com Matrizes


Aviso: Nome da chave na matriz contém qualquer caractere diferente
de caractere minúsculo, ele deve ser colocado entre aspas

Por exemplo:

[Admin @ CE0]> {: local, um {"aX" = 1; ay = 2}; : Colocar ($ a -> "aX")}

Loop através de chaves e valores

comando foreach pode ser usado para percorrer as chaves e elementos:

[Admin @ CE0]>: foreach k, v in = {2; "AX" = 1; y = 2; 5} = {fazer:


colocar ("$ k = $ v")}

0 = 2

1 = 5

aX = 1

y = 2
Nota: Se o elemento matriz tem chave, em seguida, esses
elementos são classificados em ordem alfabética, sem elementos
chaves são movidos antes elementos com chaves e sua ordem não
é alterada (ver exemplo acima).

Altere o valor do elemento da matriz única

[Admin @ MikroTik]>: pt um {x = 1; y = 2}

[Admin @ MikroTik]>: set ($ a -> "x") 5

[Admin @ MikroTik]>: ambiente de impressão

a = {x = 5; y = 2}

Repositório Script

Nível sub-menu: /system script

Contém todos os scripts de usuário criada. Os scripts podem ser executados de várias

maneiras diferentes:

 no evento - scripts são executados automaticamente em alguns eventos de

instalações ( programador ,NetWatch , VRRP )

 por outro script - execução de scripts dentro de script é permitido

 manualmente - a partir do console executando prazo de comando ou em WinBox

Propriedade Descrição
nome (string; padrão: "Script [num]") nome do script

política (string; padrão:) lista de políticas aplicáveis:

 permissões API - api


 ftp - pode fazer logon remotamente através de FTP e enviar e
recuperar arquivos do roteador

 locais - pode fazer logon localmente via console


 alterar senhas - senha
 política - gerenciar as políticas de usuário, adicionar e
remover usuário

 ler - pode recuperar a configuração


 reiniciar - pode reiniciar o roteador
 sensível - ver senhas e outras informações confidenciais
 fungada - pode executar sniffer, tocha etc
 ssh - pode fazer logon remotamente via SSH
 telnet - pode fazer logon remotamente via telnet
 teste - pode executar o ping, traceroute teste, largura de
banda

 web - podem fazer logon remotamente via http


 Winbox - permissões Winbox
 escrever - pode recuperar e alterar a configuração

Leia descrições de políticas mais detalhadas aqui

fonte (string;) Código fonte Script

Leia apenas as propriedades de status:

Propriedade Descrição
última iniciado (data) Data e hora em que o roteiro foi passado invocado.

proprietário (string) O usuário que criou o roteiro

run-count (integer) Contador que conta quantas vezes script foi executado

Comandos específicos do menu

Comando Descrição
executar (execute [id | name]) Executar script especificado por ID ou nome

Ambiente
Nível sub-menu:

 /system script environment


 /environment

Contém todas as variáveis definidas pelo usuário e seus valores atribuídos.

[Admin @ MikroTik]>: exemplo global;

[Admin @ MikroTik]>: set exemplo 123

[Admin @ MikroTik]> / print ambiente

"Exemplo" = 123

Leia apenas as propriedades de status:

Propriedade Descrição
nome (string) Nome da variável

usuário (string) O usuário que definiu variável

valor ( ) Valor atribuído à variável

Trabalho
Nível sub-menu: /system script job

Lista de todos os scripts em execução contém.

Leia apenas as propriedades de status:

Propriedade Descrição
proprietário (string) Usuário roteiro que está sendo executado

política (array) Lista de todas as políticas aplicadas ao roteiro

começou (data) Data e hora local quando o script foi iniciado