How to use shell to count the traffic of network card
Editor to share with you how to use shell statistics of network card traffic, I believe that most people do not know much about it, so share this article for your reference, I hope you can learn a lot after reading this article, let's go to know it!
Use the shell script to calculate the Linux Nic traffic, the most important point in the method:
The code is as follows:
Ifconfig $eth_name | grep bytes | awk'{print $6}'| awk-F:'{print $2}'
Get the input and output traffic through ifconfig eth0 | grep bytes.
The code is as follows:
/ @ rac2= > dd2 $ifconfig eth0 | grep bytes
RX bytes:1638005313300 (1.4 TiB) TX bytes:3408060482049 (3.0 TiB)
Then get the desired field value from the result through awk.
Get these values at a fixed time, and you can get the network card traffic by writing a loop to calculate it.
Complete code:
Code 1:
#! / bin/bash# statistics Nic traffic # link:www.yisu.com# date:2013/2/26n=10 daterm-rf / tmp/ifconfig_logwhile (($n > = 0)) don = $(($n-1)); date > > / tmp/ifconfig_log ifconfig eth2 > > / tmp/ifconfig_log sleep 1done grep "RX bytes:" / tmp/ifconfig_log | awk-F "[:]" {print $13}'| awk 'BEGIN {tmp=$1} {if (FNR > 1) print $1-tmp} {tmp=$1}'
Code 2:
#! / bin/bashif [- n "$1"]; then eth_name=$1else eth_name= "eth0" fii=0send_o= `ifconfig $eth_name | grep bytes | awk'{print $6}'| awk-F:'{print $2} '`recv_o= `ifconfig $eth_name | grep bytes | awk' {print $2}'| awk-F:'{print $2} '`send_n=$send_orecv_n=$recv_owhile [$I-le 100000] Do send_l=$send_n recv_l=$recv_n sleep 1 send_n= `ifconfig $eth_name | grep bytes | awk'{print $6}'| awk-F:'{print $2} '`recv_n= `ifconfig $eth_name | grep bytes | awk' {print $2}'`i = `expr $I + 1`expr `expr-$send_ l`recv_r= `expr $recv_n-$recv_ l`total_r= `expr $send_r + $recv_ r`send_ra= `expr\ ($send_n-$send_o\) ) / $i`expr\ ($recv_n-$recv_o\) / $i`total_ra= `expr $send_ra + $recv_ ra`sendn= `ifconfig $eth_name | grep bytes | awk-F\ ('{print $3}'| awk-F\)'{print $1} '`recvn= `ifconfig $eth_name | grep bytes | awk-F\ (' {print $2}'| awk-F\)'{print $1} '`clear echo "= =" 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 "echo" = = "done"
Code 3:
#! / bin/bash # Link: www.51bbo.com # while: do Time= `date +% F ""% T.N`rx_before= `ifconfig eth0 | sed-n 8p | awk'{print $2}'| cut-c7-`tx_before= `ifconfig eth0 | sed-n 8p | awk'{print $6}'| cut-c7-`sleep 2 rx_after= `ifconfig eth0 | sed-n 8p | awk'{print $2}'| cut-c7-`tx_after= `ifconfig eth0 | sed-n 8p | awk'{print $6 }'| cut-c7-`rx_result=$ [(rx_after-rx_before) / 512] tx_result=$ [(tx_after-tx_before) / 512] echo-e "$Time nNow_In_Speed:'$rx_result'Kbps Now_OUt_Speed:'$tx_result'Kbpsn" done is all the contents of the article "how to use the Shell Accounting Network Card Traffic". Thank you for reading! I believe we all have a certain understanding, hope to share the content to help you, if you want to learn more knowledge, welcome to follow the industry information channel!