Get the App
SLTechnology News&Howtos  ›  Development  › 

How to use shell to count the traffic of network card

Shulou Source: shulou.com Published: 2022-06-03 06:24:09 10月02日 Update

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!

Tags: Traffic code network card statistics articles content not much key points most fields methods time more knowledge results scripts industry information information channels Apple Docker Huawei Linux macOS MariaDB Microsoft MySQL NVidia OPPO Reno NVidia Apple OPPO Reno Huawei Redmi