Tiago..

fica a dica.. pq vc nao escreve um artigo para FUG sobre este script..
 faz um bom tempo que não temos artigos atualizados.. Por enquanto
ainda não postei nenhum estou fora do alcance ainda..

Parabens pelo script.



Em 31/05/07, Tiago N. Sampaio<[EMAIL PROTECTED]> escreveu:
> Eu faço isso, fiz um script em php que pega o uso atual da banda via
> snmp, tira a media com o minuto anterior
> e aumenta ou diminui a banda...
> ele na verdade grava em arquivos, e depois eu fiz um script de firewall
> ler esse arquivos...
> vou colocar o script aqui, pq ele eh pequeno mesmo:
>
>
> #!/usr/local/bin/php -f
> <?
>
> require("adodb/adodb.inc.php");
>
> $dbhost="seudbpgsql";
> $dbpass="senha";
> $dbuser="user";
> $dbbase="base";
> $db = NewADOConnection('postgres8');
> $db->Pconnect($dbhost,$dbuser,$dbpass,$dbbase) or die("erro");
>
> //Essa variavel define a taxa de amostragem
> $tempo = 60;
>
> //Soh pra zerar...
> $anterior="";
> $atual="";
>
> // valores que vc quer que a sua banda fique, pois ele vai tentar manter
> entre os dois sempre...
> //em BPS
> $tetomaximo="11800000";
> $tetominimp="11200000";
>
> //percentual anterior
> $percentual=0.5;
> //toda a variação é nesses valores, que vai de 0% a 100%
> $velocidades = array(50,80,100,150,210,50,374,648,90,200,500);
> //o que estiver aqui eh garantido
> $velocidades_garantidas = array(100,150,200,300,390,50,650,1400,60,100,100);
> //Arquivos pra gravar as velocidades
> $arquivos =
> array("V150","V230","V300","V450","V600","V128","V1024","V2048","V150N","V300N","V600N");
>
> while(TRUE){
>         $anterior=$atual;
>         $atual = snmpget("ipdorouter","comunidade","ifOutOctets.1");
>         $atual = str_replace("Counter32: ","",$atual);
>         sleep($tempo);
>
>         if(!$anterior || !$atual) continue;
>
>         $media = round((($atual - $anterior)/$tempo)*8);
>         else if($media > $tetomaximo) mudar_percentual(0);
>         else if($media < $tetominimo) mudar_percentual(1);
>         else continue;
>         system("/bin/sh /etc/firewall/pipes.sh");
> }
>
>
> function mudar_percentual($status){
>         GLOBAL $percentual;
>         GLOBAL $velocidades;
>         GLOBAL $velocidades_garantidas;
>         GLOBAL $arquivos;
>         GLOBAL $db;
>
>         if($status == 1){
>                 if($percentual > 0.9) return;
>                 $percentual+=0.1;
>         }else{
>                 if($percentual < 0.1) return;
>                 $percentual-=0.1;
>         }
>
>         for($i=0;$i<count($velocidades);$i++){
>                 $velocidade =
> round($velocidades_garantidas[$i]+($velocidades[$i]*$percentual));
>                 $db->Execute("UPDATE velocidades SET velocidade =
> '$velocidade' WHERE plano = '".$arquivos[$i]."'");
>
> if(!($arquivo=fopen("/etc/firewall/velocidades/".$arquivos[$i],"w"))){
>                         continue;
>                 }
>                 fprintf($arquivo,$velocidade);
>                 fclose($arquivo);
>         }
> }
>
> ?>
>
> É algo bem simples e tosco, que grava a velocidade no banco apenas pra
> consulta, pro gerente saber a quantas andam os planos
> dos clientes...
> ai vc adapta ele conforme vc precisar...
>
> E antes que alguem me fale, Pq naum usa pf, jah usou um pf com mais de
> 2000 queues?
> eu tentei colocar, mas pra medir a velocidade de todo mundo aqui,
> precisaria de no minimo uma maquina quadriprocessada...
>
> Abraços
>
>
> ThOLOko wrote:
> > Galerinha BSD,
> >
> > Queria desenvolver algum tipo de controle de banda em IPFW que seja
> > dinamico... por exemplo,,, criar grupos de bandas conforme o uso do pessoal
> > para nao disperdiçar banda...
> >
> > Alguem tem alguma ideia??? Gostaria de usar PHP+MySQL contendo os clientes e
> > suas respectivas bandas...
> >
> > PF resolveria??
> >
> > Abbraços...
> >
> >
>
> -------------------------
> Histórico: http://www.fug.com.br/historico/html/freebsd/
> Sair da lista: https://www.fug.com.br/mailman/listinfo/freebsd
>
-------------------------
Histórico: http://www.fug.com.br/historico/html/freebsd/
Sair da lista: https://www.fug.com.br/mailman/listinfo/freebsd

Responder a