ArticleDirectory
Transferred from:
Http://blog.csdn.net/0210/article/details/5437368
Some bugs in the original article have been modified.
In the GUI, a routing tool can display network traffic. What should I do under the command line?
Obviously there are some methods. For example, ifconfig will have such output:
RX Bytes: 1224128649 (1.1 Gib) TX Bytes: 34114947 (32.5 MIB)
After a while, the value changes, and the difference between the two is the traffic of the past period of time. However, this is too unfriendly ......
We can write a script to display and refresh the script in real time!
The script is as follows. In other words, my skill is limited. The script writing principle is sufficient.
#! /Bin/bash If [-n "$1"]; then Eth_name = $1 Else Eth_name = "eth0" Fi I = 0 Send_o = 'busybox ifconfig $ eth_name | grep bytes | awk '{print $6}' | awk-F: '{print $2 }'' Recv_o = 'busybox ifconfig $ eth_name | grep bytes | awk '{print $2}' | awk-F: '{print $2 }'' Send_n = $ send_o Recv_n = $ recv_o While [$ I-Le 100000]; do Send_l = $ send_n Recv_l = $ recv_n Sleep 1 Send_n = 'busybox ifconfig $ eth_name | grep bytes | awk '{print $6}' | awk-F: '{print $2 }'' Recv_n = 'busybox ifconfig $ eth_name | grep bytes | awk '{print $2}' | awk-F: '{print $2 }'' I = 'expr $ I + 1' Send_r = 'expr $ send_n-$ send_l' Recv_r = 'expr $ recv_n-$ recv_l' Total_r = 'expr $ send_r + $ recv_r' Send_ra = 'expr \ ($ send_n-$ send_o \)/$ I' Recv_ra = 'expr \ ($ recv_n-$ recv_o \)/$ I' Total_ra = 'expr $ send_ra + $ recv_ra' Sendn = 'busybox ifconfig $ eth_name | grep bytes | awk-f \ ('{print $3}' | awk-f \) '{print $1 }'' Recvn = 'busybox ifconfig $ eth_name | grep bytes | awk-f \ ('{print $2}' | awk-f \) '{print $1 }'' Clear Echo "last second: Send rate: $ send_r Bytes/sec Recv rate: $ recv_r Bytes/sec total rate: $ total_r Bytes/sec" Echo "average value: Send rate: $ send_ra Bytes/sec Recv rate: $ recv_ra Bytes/sec total rate: $ total_ra Bytes/sec" Echo "total traffic after startup: Send traffic: $ sendn Recv traffic: $ recvn" Done |
This script (assuming the name is traffic) displays the eth0 traffic by default. If you have multiple NICs, upload the NICS as parameters. For example:
./Traffic eth1
The running result is as follows: