+ Responder ao Tópico



  1. #1

    Question Script para mudar parent (ajuda)

    Olá. Boa noite
    Estou tentando fazer um script para verificar em qual "faixa" de ip o cliente está e mudar o "parent".
    Já consegui de um modo mas gostaria de fazer melhor..
    Modo que fiz:

    :for x from=2 to=254 do={/queue simple set [/queue simple find target="100.64.11.$x/32" parent!=64_11] parent=64_11};/
    :for x from=2 to=254 do={/queue simple set [/queue simple find target="100.64.12.$x/32" parent!=64_12] parent=64_12};/
    ...

    Dessa forma funciona, mas em cada servidor (são muitos) que vou aplicar o script tenho que alterar, pois no outro servidor seria:

    :for x from=2 to=254 do={/queue simple set [/queue simple find target="100.64.21.$x/32" parent!=64_21] parent=64_21};/
    ...
    :for x from=2 to=254 do={/queue simple set [/queue simple find target="100.64.29.$x/32" parent!=64_29] parent=64_29};/

    Minha intenção era fazer um código que desse certo em todos os servidores, pra não ter que ficar alterando a cada adição de "faixa" de ip também...
    Pensei em fazer:

    :for y from=21 to=29 do={:for x from=2 to=254 do={/queue simple set [/queue simple find target="100.64.$y.$x/32" parent!="64_$y"] parent="64_$y"}}

    Porém ainda precisaria ficar "adaptando" o "for y from..." para cada rb


    Agora a parte que empaquei é...
    Como "pegar" o "y" dos ips que tenho nos Ip->Addresses ao inves de usar o "for", por exemplo:
    Tenho como ips de gateway nessa routerboard 100.64.40.1/24 e 100.64.50.1/24

    Então executar:
    :for x from=2 to=254 do={/queue simple set [/queue simple find target="100.64.$y.$x/32" parent!="64_$y"] parent="64_$y"}}
    Sendo que $y=40

    E executar novamente
    Com $y=50
    e assim sucessivamente...

    Desde já obrigado a todos

  2. #2

    Padrão Re: Script para mudar parent (ajuda)

    Ahh, outra coisa que tentei foi colocar assim...
    :for y from=1 to=254 do={:for x from=2 to=254 do={/queue simple set [/queue simple find target="100.64.$y.$x/32" parent!="64_$y"] parent="64_$y"}}

    Porém o script da o erro:
    input does not match any value of parent
    Não entendi o porque disso?

    e além disso, caso desse certo dessa forma levaria uma eternidade (e mais um pouco) pra rodar..
    Esse script pretendo deixar no scheduler pra rodar de 10 em 10 min

  3. #3

    Padrão Re: Script para mudar parent (ajuda)

    Amigo qual seria a finalidade dessas alterações do parent pra essa determinada fauxa de ip?

  4. #4

    Padrão Re: Script para mudar parent (ajuda)

    Garantia de banda...
    Meu sistema já indica para a rb o "download limit at" e o "upload limit at", mas não consigo fazer ele indicar o "parent".
    A ideia é sempre verificar o "target" nos queues e acertar isso por script

  5. #5

    Padrão Re: Script para mudar parent (ajuda)

    Citação Postado originalmente por Nobody Ver Post
    Garantia de banda...
    Meu sistema já indica para a rb o "download limit at" e o "upload limit at", mas não consigo fazer ele indicar o "parent".
    A ideia é sempre verificar o "target" nos queues e acertar isso por script
    isso é coisa avançada hein, poderia fazer um vídeo explicativo demonstrando a utilização da pratica? além de ser didático para o máximo de pessoas possíveis isso poderia ajudar a resolver esse problema.

  6. #6

    Padrão Re: Script para mudar parent (ajuda)

    É a desculpa de sempre... Pode explicar... Por que sou tão "preguiçoso" (ou outra coisa mais feia) que não consigo nem ler o script que você já compartilhou e quero de graça. Ahh mas não esquece que se você fizer isso vai ajudar muita gente...

    Todo dia tem um assim me "aporrinhando".

  7. #7

    Padrão

    Amigo, não consigo fazer o script pra você pois estou bem corrido, mas para te dar uma luz, eu pegaria algum ip e daria um parse na string pra adquirir faixa de ip.

    Por exemplo:
    Código :
    :local meuip [:pick [queue simple get [find name=queue1] target] 0];
    :log info $meuip;
    Com isso você consegue saber o ip da regra que você colocar o nome, daí você analisa a string pra retirar só a parte que te interessa. Tipo, usa o find para procurar as posições dos caracteres "." e subtrai da string, sei lá, vai de você.
    Depois disso armazena numa variável e coloca no seu laço.

    Talvez esse exemplo possa te ajudar,
    https://forum.mikrotik.com/viewtopic.php?t=96172

    Abs.