I am doing a school project in which I want to get the bandwidth of a network interface at any given second, or some other small increment of time. I need this for a Perl script I am working on. Therefore it needs to be non-interactive and just prints results.

Any suggestions?


The number of bytes sent and received by eth0 since the interface was brought up can be read in /sys/class/net/eth0/statistics/tx_bytes and /sys/class/net/eth0/statistics/rx_bytes respectively. The number of packets can be read in …/tx_packets and …/rx_packets. If you have an older kernel that doesn't provide these files, the data is available in the output of /sbin/ifconfig eth0.

| improve this answer | |
  • Exactly what I was looking for. – Alex Nov 6 '10 at 20:49

A simple approach would be:

  • execute ifconfig interface name once, capture its output
  • extract the values from "RX bytes" and "TX bytes"
  • wait for one second
  • repeat the first two steps again
  • compute the deltas
| improve this answer | |
  • Good answer too! Gilles' solution just happens to work perfect in my case. – Alex Nov 6 '10 at 20:49

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service, privacy policy and cookie policy

Not the answer you're looking for? Browse other questions tagged or ask your own question.