Ezequias Rocha
(usa Ubuntu)
Enviado em 20/10/2010 - 08:43h
Bem, procurando na net, achei um post muito útil para tentar te responder sobre o assunto:
Link:
http://www.linuxquestions.org/questions/linux-software-2/how-to-calculate-bandwidth-on-linux-344585/
///////////////////////////////////////////////
OK check this out.
Everything in linux is logged, though usually we have no idea where. I'm sure somewhere in /proc/net there is a way to tell how many bits have gone in and out. But here's how I do it.
I assume here that you have snmpd installed and running, as well as net-snmp-tools. Type "ps -A|grep snmp" and "snmpwalk --help" to test this.
Start by typing this:
snmpwalk -v1 -cpublic <host> system
This should start spewing system info down your console. Each value is in the form:
sytem.thing1.thing2.thing3.etc = <whatever>
Look for something that looks like ifInOctets and ifOutOctets. Those are how many bytes have been passed in and out by the interface since last reboot (or last counter reset, but we don't need to get into that here.) Look at the path (ie the system.thing1.thing2 etc) for those values: I can't remember them offhand. Then, when you type:
snmpwalk -v1 -cpublic <host> system.path.to.those.values |grep Octets
You should see those two values.
NOW: if you want to know bandwidth at a particular interval, you obviously must take two snapshots of those values and divide the difference by the time between them: I'm not going to write how to script this here, but I've done it, it's not too hard.
OR: If you want to do this the easy way, there's a great tool called "IPTraf". You can install it by rpm or however you wish. Just become root, and type iptraf. It's got a pretty nice interface that tells you all about bandwidth stats and such.
Have fun.
////////////////////////////////////////
Tradução:
Ok. Tente isto.
TTudo em Linux é registrado. Embora normalmente não sabemos onde. Com certeza em algum lugar do arquivo /proc/net há uma maneira de se saber quantos bits entraram e sairam. Mas aqui está como faço isto:
Eu presumo aqui que você tenha o snmpd instalado e rodando, assim como as ferramento net-snmp. Digite "ps -A|grep snmp" e "snmpwalk --help" para testar.
Comece digitanto isto:
snmpwalk -v1 -cpublic <host> system
Isso deve iniciar uma torrente de informações do sistema na tela. Cada valor está na forma:
sistema.algumacoisa1.algumacoisa2.algumacoisa3.etc = <qualquercoisa>
Procure algo que pareça com ifInOctets e ifOutOctets. Este são quantos byte entraram e sairam pela interface desde o último reinício da interface. Procure o caminho (exemplo sistema.algumacoisa1.algumacoisa2 etc) destes valores. Eu não os lembro agora. Então, quando você digita
snmpwalk -v1 -cpublic <host> sistema.caminho.para.estes.valores |grep Octets
você deve ver estes dois valores.
Agora:Se você quer saber a largura de banda (nt: bandwidth) num dado intervalo, obviamente, você deve adquirir estes dois valores (nt: em tempos diferente) e dividir pela diferença de tempo entre eles: não vou escrever o script aqui, mas já o escrevi e não é muito difícil.
Ou: se você quer fazer isto de uma maneira fácil, existem uma grande ferramenta chamada de "IPTraf". Você pode instalá-la por rpm ou qualquer que queira. Como root, apenas digite iptraf. É uma interface razoável que te diz tudo sobre status de largura de banda (nt: bandwidth) e tudo o mais.
Curta.
Embraces!