+ Responder ao Tópico



  1. #1

    Padrão Ajuda com Script para remover do Hotspot usuários desabilitados que não fizeram logoff

    Colegas, meus clientes são bloqueados pelo mikrotik de forma automática através de um script que desabilita o usuário no hotspot após o vencimento.

    Mas acontece que alguns engraçadinhos já perceberam que, caso não façam o logoff (seja por timeout ou outro) na noite do bloqueio, podem utilizar a internet mesmo estando bloqueados até que o administrador do sistema perceba e o remova das sessões ativas. Isso acontece, porque o mikrotik desabilita o usuário, mas não remove a sessão ativa.

    Por isso estou quebrando a cabeça para criar um script que consiste apenas em procurar os usuários desabilitados em / ip user hotspot, capturar os nomes deles e executar um comando mais ou menos assim:

    / ip hotspot active remove [nome do(s) usuário(s) desativado(s)]

    Essa é minha dificuldade, estou começando mais ou menos assim:

    / ip hotspot active remove ([/ip hotspot user find disabled=yes])

    mas não está dando certo, por isso preciso da preciosa ajuda dos colegas para concluir.

    Obrigado pela atenção.

  2. #2

    Padrão Re: Ajuda com Script para remover do Hotspot usuários desabilitados que não fizeram logoff

    Para vc fazer isso tera que criar um script para cada usuario que irá bloquear certo?
    Não seria melhor vc dar um reboot na routerboard?

  3. #3

    Padrão Re: Ajuda com Script para remover do Hotspot usuários desabilitados que não fizeram logoff

    Tá quase certinho mais a regra e assim:
    ip hotspot active remove [/ip hotspot active find user="usuario"]
    Obs: usuario e nome que usa no cadastro exemplo: se for diego vc colocar:
    ip hotspot active remove [/ip hotspot active find user="diego"]

  4. #4

    Padrão Re: Ajuda com Script para remover do Hotspot usuários desabilitados que não fizeram logoff

    Obrigado pela atenção e a colaboração de todos.

    Um amigo analista de sistemas me ajudou e conseguimos assim:

    :foreach h in=[/ip hotspot active find] do={
    :local hativos [/ip hotspot active get $h user];
    :foreach hh in=[/ip hotspot user find name=$hativos] do={
    :local situsuario [/ip hotspot user get $hh disabled];
    :if ($situsuario = true) do={
    /ip hotspot active remove [/ip hotspot active find user=$hativos]
    }
    }
    }