統(tǒng)計(jì)網(wǎng)卡流量的兩段shell腳本(使用ifconfig)
使用shell腳本計(jì)算Linux網(wǎng)卡流量,方法中最關(guān)鍵點(diǎn):
ifconfig $eth_name | grep bytes | awk '{print $6}' | awk -F : '{print $2}'
通過(guò)ifconfig eth0|grep bytes 得到輸入輸出的流量。
/@rac2=>dd2$ifconfig eth0|grep bytes
RX bytes:1638005313300 (1.4 TiB) TX bytes:3408060482049 (3.0 TiB)
再將結(jié)果通過(guò)awk 得出所要的字段值。
固定時(shí)間得到這些值,在寫(xiě)個(gè)循環(huán)計(jì)算一下就能得到網(wǎng)卡流量。
完整代碼:
代碼一:
#!/bin/bash
# 統(tǒng)計(jì)網(wǎng)卡流量
# link:www.dhdzp.com
# date:2013/2/26
n=10
date
rm -rf /tmp/ifconfig_log
while (( $n >= 0 ))
do
n=$(($n - 1));
date >> /tmp/ifconfig_log
ifconfig eth1 >> /tmp/ifconfig_log
sleep 1
done
grep "RX bytes:" /tmp/ifconfig_log | awk -F"[:| ]" '{print $13}' | awk 'BEGIN{tmp=$1}{if(FNR > 1)print $1-tmp}{tmp=$1}'
代碼二:
#!/bin/bash
if [ -n "$1" ]; then
eth_name=$1
else
eth_name="eth0"
fi
i=0
send_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_o
recv_n=$recv_o
while [ $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}' | 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=`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
代碼三:
#!/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
相關(guān)文章
Linux命令行循環(huán)執(zhí)行shell命令
這篇文章主要介紹了Linux命令行,循環(huán)執(zhí)行shell命令的相關(guān)知識(shí),主要包括死循環(huán),普通計(jì)數(shù)循環(huán),以及Linux shell循環(huán)命令 while死循環(huán)的用法,需要的朋友可以參考下2023-01-01
bash shell獲取當(dāng)前腳本的絕對(duì)路徑(pwd/readlink)
有時(shí)候,我們需要知道當(dāng)前執(zhí)行的輸出shell腳本的所在絕對(duì)路徑,本文主要介紹了bash shell獲取當(dāng)前腳本的絕對(duì)路徑,文中通過(guò)示例代碼介紹的非常詳細(xì),具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下2022-02-02
Shell腳本實(shí)現(xiàn)自動(dòng)輸入密碼登錄服務(wù)器
這篇文章主要介紹了Shell腳本實(shí)現(xiàn)自動(dòng)輸入密碼登錄服務(wù)器,本文使用expect來(lái)實(shí)現(xiàn)這個(gè)需求,講解了expect的安裝及使用腳本,需要的朋友可以參考下2015-03-03
Shell腳本break和continue命令簡(jiǎn)明教程
這篇文章主要介紹了Shell腳本break和continue命令簡(jiǎn)明教程,break和continue命令用來(lái)在未達(dá)到循環(huán)結(jié)束條件時(shí)強(qiáng)制跳出循環(huán),需要的朋友可以參考下2014-07-07
Shell腳本導(dǎo)入導(dǎo)出數(shù)據(jù)的項(xiàng)目示例
在工作中,很多場(chǎng)景都會(huì)涉及到數(shù)據(jù)的導(dǎo)入導(dǎo)出,本文就介紹一下使用Shell腳本導(dǎo)入導(dǎo)出數(shù)據(jù)的項(xiàng)目示例,文中通過(guò)示例代碼介紹的非常詳細(xì),具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下2022-04-04
用Shell腳本快速搭建Ubuntu下的Nodejs開(kāi)發(fā)環(huán)境
這篇文章主要介紹了用Shell腳本快速搭建Ubuntu下的Nodejs開(kāi)發(fā)環(huán)境的方法,需要的朋友可以參考下2014-03-03
Linux下shell腳本監(jiān)控Tomcat的狀態(tài)并實(shí)現(xiàn)自動(dòng)啟動(dòng)的步驟
這篇文章主要介紹了Linux下shell腳本監(jiān)控Tomcat的狀態(tài)并實(shí)現(xiàn)自動(dòng)啟動(dòng)的步驟,本文給大家介紹的非常詳細(xì),具有一定的參考借鑒價(jià)值,需要的朋友參考下吧2019-12-12
通過(guò)shell進(jìn)行數(shù)學(xué)運(yùn)算的多種方式
這篇文章主要介紹了通過(guò)shell進(jìn)行數(shù)學(xué)運(yùn)算的多種方式、有l(wèi)et命令 、$[]形式、expr命令等,需要的朋友可以參考下2014-03-03

