3

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?

Gareth
  • 19,080
Alex
  • 245

2 Answers2

3

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.

0

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
vtest
  • 5,358