Linux – How to get an interface’s bandwidth at any given second from the Linux command line

bandwidthcommand linecommand-line-toollinuxscript

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?

Best Answer

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.