Erro ao manipular scripts do Mikrotik

5

Eu tenho o RouterOS 5.14 na RB493G. Eu preciso escrever script, que lança

/tool fetch ...

A execução da busca pode resultar em erro, isso está correto (a URL pode estar indisponível). Script trava no erro. Existe alguma maneira de ignorá-lo?

Solução:

[admin@Mikrotik] >> /system script
0 name=safe-fetch source=
:global done
:global url

/tool fetch $url
:Set done=true

1 name=test source=
:global done
:global url="google.com"

:set done false
:execute safe-fetch
:local counter 0
:while ( $done != true && $counter < 10 ) do={
    :set counter ($counter+1)
    :delay 0.2
    }

if ($done = "true") do={
   :put "Fetch OK"
   } else={
   :put "Fetch ERROR"
   }

Aviso: não documentado ": executar" é usado.

    
por Selivanov Pavel 23.05.2012 / 15:50

2 respostas

1

Parece que não há tratamento de erros neste tipo de scripts. Você provavelmente deve adotar a solução proposta por esse cara :

So you have to have 2 scripts, one that runs and does stuff and handles situation when some value is not received as expected, and other script does the job, that can fail. as a result, if second script fails, first one that called second script to do the job will continue.

    
por 26.05.2012 / 20:12
5

ATUALIZAÇÃO a partir do RouterOS v6.2

Agora você pode criar um bloco do com um manipulador de erros:

:do {
  /tool fetch $url
  :put "Fetch OK"
} on-error={ :put "Fetch ERROR"};
    
por 21.06.2017 / 07:01