Mikrotik Script: ejecutar un script si aparece cierta palabra o frase en el Log.

En el foro de Mikrotik un participante ha posteado algo interesante!!

Creo que el titulo esta bastante claro, es un script que detecta cierto contenido en el log, y luego ejecuta «otro script».

Script:

:global lastTime;

:local currentBuf [ :toarray [ /log find message~"wrong peer state" || message~"master flag=false" ] ] ;
:local currentLineCount [ :len $currentBuf ] ;

if ($currentLineCount > 0) do={
   :local currentTime "$[ /log get [ :pick $currentBuf ($currentLineCount -1) ] time ]";

   :if ([:len $currentTime] = 15 ) do={
      :set currentTime [ :pick $currentTime 7 15 ];
   }

   :local output "$currentTime $[/log get [ :pick $currentBuf ($currentLineCount-1) ] message ]";

   :if (([:len $lastTime] < 1) || (([:len $lastTime] > 0) && ($lastTime != $currentTime))) do={
      :set lastTime $currentTime ;
      /system script run myScript
   }
}

ver el post completo en el foro de Mikrotik

Primero en tech-nico.com

3 Comentarios

  1. Buenas tardes… espero puedas ayudarme… quisiera saber si se puede crear un evento o un disparador que cuando se conecte algun dispositivo ya sea movil, tablet o pc dependiendo del hostname se ejecute un script… lo comento porque no quiero estar corriendo un script cada determinado tiempo…

  2. Hola Felix, en Hotspot, user profiles, tenes la posibilidad de cargar un script en los eventos OnLogin y otro en OnLogout. En PPPoE no esta esta posibilidad, solo aplicar filtros de firewall para incomming y outcomming traffic.
    Para DHCP si editas tu DHCP-Server, tiene para aplicar un «lease-script», es decir que se ejecutaria cuando otorga una direccion IP. Espero que tengas suerte. Saludos.

Deja un comentario