View network traffic in Linux

Source: Internet
Author: User
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:

Related Article

Contact Us

The content source of this page is from Internet, which doesn't represent Alibaba Cloud's opinion; products and services mentioned on that page don't have any relationship with Alibaba Cloud. If the content of the page makes you feel confusing, please write us an email, we will handle the problem within 5 days after receiving your email.

If you find any instances of plagiarism from the community, please send an email to: info-contact@alibabacloud.com and provide relevant evidence. A staff member will contact you within 5 working days.

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.