+ Responder ao Tópico



  1. #1

    Padrão Script para Ping

    Estou criando um script para avaliar a qualidade da transmissão para os clientes, já tenho ele pronto, mas gostaria de deixá-lo um pouco mais "profissional" me permitindo usar looping e matrizes.

    O script original é algo como:

    :local online 0
    :local problema 0
    :local informacao ""
    :local data [/system clock get date]
    :local hora [/system clock get time]
    :local tstping

    :if ([ping 169.254.143.4 count 4]>0) do={
    :set online ($online+1)
    :set tstping [ping 169.254.143.4 count 10 size=1500 do-not-fragment]
    :if (tstping<9&&tstping>1) do={
    :set problema ($problema+1)
    :set informacao ($informacao."Vilma => ".(10-$tstping)." pct's | ")
    }
    }

    :if ([ping 169.254.143.5 count 4]>0) do={
    :set online ($online+1)
    :set tstping [ping 169.254.143.5 count 10 size=1500 do-not-fragment]
    :if (tstping<9&&tstping>1) do={
    :set problema ($problema+1)
    :set informacao ($informacao."Zeh => ".(10-$tstping)." pct's | ")
    }
    }

    :if ($informacao!="") do={:log info ("PING==>> $problema Cliente(s) de $online Conectado(s) esta(ao) com problemas no Ping [Cliente => Pacotes Perdidos]: " . $informacao)} else {:log info "PING OK!!! ==>>$online Clientes Conectados, Nenhum Apresentou Problemas. Rede 100%"}
    :if (($online/2)<$problema) do={
    :log info "EMAIL==>> Como $problema dos $online usuarios conectados neste instante, portanto, mais da metade da rede apresentou problemas, foi enviado um email de aviso."
    /tool e-mail send to="[email protected]" subject="WL_INSTAVEL: Provedor Smart apresentou instabilidades na wireless em $data as $hora" body="$problema Cliente(s) de $online Conectado(s) esta(ao) com problemas no Ping [Cliente => Pacotes Perdidos]: $informacao. Isto indica que mais da metade da rede esta com o tempo de resposta acima do minimo recomendado para um bom funcionamento, caracterizando assim, problema geral na Wireless."
    }

    Gostaria de mudá-lo para (versão simples pra vcs entenderem o espírito da coisa):

    :local clientes [:toarray "4,Vilma,5,Zeh"]
    :local cont
    :local clip 0
    :local clinome
    :for i from=0 to=[:len $clientes] do={
    :if (cont=0) do={
    :set cont 1;
    :set clip [ick $clientes $i];
    } else {
    :set cont 0;
    :set clinome [ick $clientes $i];
    }
    ut "Pingando ".$clinome
    ping 169.254.143.[$clip] count 4
    }

    To apanhando demais pro tal Array e não consigo guardar em uma variável as posíções ímpares e em outra as posições pares. Pra fazer esta parte em específico funcionar:
    ut "Pingando ".$clinome
    ping 169.254.143.[$clip] count 4 {aqui o ping está com erro de sintaxe também}

  2. #2

    Padrão Re: Script para Ping

    Bom pequei seu script .. e fiz uma modificacao.. simples mais para teste um range de ips ..e depois mandar o relatorios ..
    so que nao fiz o teste depois se tive como vc testar e manda a resposta

    Código :
    :local online 0
    :local problema 0
    :local informacao ""
    :local data [/system clock get date]
    :local hora [/system clock get time]
    :local tstping
    : for i from=2 to=254 do={
    :if ([ping ("169.254.143." . $i) count 4]>0) do={
    :set online ($online+1)
    :set tstping [ping ("169.254.143." . $i) count 10 size=1500 do-not-fragment]
    :if (tstping<9&&tstping>1) do={
    :set problema ($problema+1)
    :set informacao ($informacao."Cliente Com IP - "."169.254.143." . $i." => ".(10-$tstping)." pct's | ")
    }
    }
    } 
    :if ($informacao!="") do={:log info ("PING==>> $problema Cliente(s) de $online Conectado(s) esta(ao) com problemas no Ping [Cliente => Pacotes Perdidos]: " . $informacao)} else {:log info "PING OK!!! ==>>$online Clientes Conectados, Nenhum Apresentou Problemas. Rede 100%"}
    :if (($online/2)<$problema) do={
    :log info "EMAIL==>> Como $problema dos $online usuarios conectados neste instante, portanto, mais da metade da rede apresentou problemas, foi enviado um email de aviso."
    /tool e-mail send to="[EMAIL="[email protected]"][email protected][/EMAIL]" subject="WL_INSTAVEL: Provedor apresentou instabilidades na wireless em $data as $hora" body="$problema Cliente(s) de $online Conectado(s) esta(ao) com problemas no Ping [Cliente => Pacotes Perdidos]: $informacao. Isto indica que mais da metade da rede esta com o tempo de resposta acima do minimo recomendado para um bom funcionamento, caracterizando assim, problema geral na Wireless."
    }

  3. #3

    Padrão Re: Script para Ping

    Funcionou 100% . Pra ficar 10 mesmo, só se tivesse uma forma de tratar os valores min/max/avg . Se houvesse como armazenar estes dados para uma análise mais minuciona sobre a qualidade de cada cliente. Já tentei bastante, mas a única coisa que consigo extrair do ping é a quantidade de pacotes com sucesso.