溫馨提示×

您好,登錄后才能下訂單哦!

密碼登錄×
登錄注冊(cè)×
其他方式登錄
點(diǎn)擊 登錄注冊(cè) 即表示同意《億速云用戶(hù)服務(wù)條款》

三個(gè)監(jiān)控linux網(wǎng)卡流量腳本是什么

發(fā)布時(shí)間:2021-10-22 11:02:55 來(lái)源:億速云 閱讀:135 作者:柒染 欄目:云計(jì)算

這期內(nèi)容當(dāng)中小編將會(huì)給大家?guī)?lái)有關(guān)三個(gè)監(jiān)控linux網(wǎng)卡流量腳本是什么,文章內(nèi)容豐富且以專(zhuān)業(yè)的角度為大家分析和敘述,閱讀完這篇文章希望大家可以有所收獲。

腳本1:  
#!/bin/bash  
e0_in_old=$(ifconfig eth0 |grep bytes |awk '{print $2" "$6}' |egrep -o '[0-9]+' |head -n1)  
e0_out_old=$(ifconfig eth0 |grep bytes |awk '{print $2" "$6}' |egrep -o '[0-9]+' |tail -n1)  
>e0_total_old=$(($e0_in_old + $e0_out_old))  
e1_in_old=$(ifconfig eth2 |grep bytes |awk '{print $2" "$6}' |egrep -o '[0-9]+' |head -n1)  
e1_out_old=$(ifconfig eth2 |grep bytes |awk '{print $2" "$6}' |egrep -o '[0-9]+' |tail -n1)  
e1_total_old=$(($e1_in_old + $e1_out_old))  
while true  
do  
sleep 1  
e0_in_new=$(ifconfig eth0 |grep bytes |awk '{print $2" "$6}' |egrep -o '[0-9]+' |head -n1)  
e0_out_new=$(ifconfig eth0 |grep bytes |awk '{print $2" "$6}' |egrep -o '[0-9]+' |tail -n1)  
e0_total_new=$(($e0_in_new + $e0_out_new))  
e1_in_new=$(ifconfig eth2 |grep bytes |awk '{print $2" "$6}' |egrep -o '[0-9]+' |head -n1)  
e1_out_new=$(ifconfig eth2 |grep bytes |awk '{print $2" "$6}' |egrep -o '[0-9]+' |tail -n1)  
e1_total_new=$(($e1_in_new + $e1_out_new))  
e0_in=$((($e0_in_new - $e0_in_old) * 8))  
e0_out=$((($e0_out_new - $e0_out_old) * 8))  
e0_total=$((($e0_total_new - $e0_total_old) * 8))  
e1_in=$((($e1_in_new - $e1_in_old) * 8))  
e1_out=$((($e1_out_new - $e1_out_old) * 8))  
e1_total=$((($e1_total_new - $e1_total_old) * 8))  
echo -e "eth0 IN: $e0_in \t b/s OUT: $e0_out \t b/s TOTAL: $e0_total \t b/s"  
echo -e "eth2 IN: $e1_in \t b/s OUT: $e1_out \t b/s TOTAL: $e1_total \t b/s\n"  
e0_in_old=$e0_in_new  
e0_out_old=$e0_out_new  
e0_total_old=$e0_total_new  
e1_in_old=$e1_in_new  
e1_out_old=$e1_out_new  
e1_total_old=$e1_total_new  
done  
   
exit 0  
   
   
腳本2:  
#!/bin/bash  
#  osdba 2008.10.22 monitor the interface's network traffic.  
if [ $# -ne 3 ];then  
   echo Useage : $0 interface interval count  
   echo Example: $0 eth0 2 10  
   exit  
fi  
eth=$1  
count=$3  
interval=$2  
inbytesfirst=$(cat /proc/net/dev |tr ':' ' '|awk  '/'$eth'/{print $2}')  
if [ -z "$inbytesfirst" ];then  
    echo The network interface $eth is not exits!  
    exit 1;  
fi  
outbytesfirst=$(cat /proc/net/dev |tr ':' ' '|awk  '/'$eth'/{print $10}')  
inpacketsfirst=$(cat /proc/net/dev |tr ':' ' '|awk  '/'$eth'/{print $3}')  
outpacketsfirst=$(cat /proc/net/dev |tr ':' ' '|awk  '/'$eth'/{print $11}')  
sleep $interval"s"  
i=0  
while [ "$i" -lt "$count" ]  
do  
   inbytesend=$(cat /proc/net/dev |tr ':' ' '|awk  '/'$eth'/{print $2}')  
   outbytesend=$(cat /proc/net/dev |tr ':' ' '|awk  '/'$eth'/{print $10}')  
   inpacketsend=$(cat /proc/net/dev |tr ':' ' '|awk  '/'$eth'/{print $3}')  
   outpacketsend=$(cat /proc/net/dev |tr ':' ' '|awk  '/'$eth'/{print $11}')  
   bytesin=$(($inbytesend-$inbytesfirst))  
   bytesout=$(($outbytesend-$outbytesfirst))  
   packetsin=$(($inpacketsend-$inpacketsfirst))  
   packetsout=$(($outpacketsend-$outpacketsfirst))  
   if [ "$bytesin" -lt "0" ];then  
      bytesin=$((4294967295-$inbytesfirst+$inbytesend))  
      #echo bytesin $bytesin $inbytesfirst $inbytesend  
   fi  
   if [ "$bytesout" -lt "0" ];then  
      bytesout=$((4294967295-$outbytesfirst+$outbytesend))  
      #echo bytesout $bytesout $outbytesfirst $outbytesend  
   fi  
   if [ "$packetsin" -lt "0" ];then  
      packetsin=$((4294967295-$inpacketsfirst+$inpacketsend))  
      #echo packetsin $packetsin $inpacketsfirst $inpacketsend  
   fi  
   if [ "$packetsout" -lt "0" ];then  
      packetsout=$((4294967295-$outpacketsfirst+$outpacketsend))  
      #echo packetsout $packetsout $outpacketsfirst $outpacketsend  
   fi  
   bytesin=$(($bytesin/$interval))  
   bytesout=$(($bytesout/$interval))  
   packetsin=$(($packetsin/$interval))  
   packetsout=$(($packetsout/$interval))  
   sumbytesin=$(($sumbytesin+$bytesin))  
   sumbytesout=$(($sumbytesout+$bytesout))  
   sumpacketsin=$(($sumpacketsin+$packetsin))  
   sumpacketsout=$(($sumpacketsout+$packetsout))  
   if [ $(($i%20)) -eq 0 ];then  
      echo " ifname   | in_kbits/s out_kbits/s | in_kBytes/s out_kBytes/s | in_packets/s out_packets/s"  
      echo "--------- | ---------- ----------- | ----------- ------------ | ------------ -------------"  
   fi  
   echo $eth $bytesin $bytesout $packetsin $packetsout |awk '{printf("%9s | %10d %11d | %11d %12d | %12d %13d\n",$1,$2/128,$3/128,$2/1024,$3/1024,$4,$5)}'  
   inbytesfirst=$inbytesend  
   outbytesfirst=$outbytesend  
   inpacketsfirst=$inpacketsend  
   outpacketsfirst=$outpacketsend  
    
   i=$(($i+1))  
   sleep $interval"s"  
done  
sumbytesin=$(($sumbytesin/$i))  
sumbytesout=$(($sumbytesout/$i))  
sumpacketsin=$(($sumpacketsin/$i))  
sumpacketsout=$(($sumpacketsout/$i))  
echo "--------- | ---------- ----------- | ----------- ------------ | ------------ -------------"  
echo Average $sumbytesin $sumbytesout $sumpacketsin $sumpacketsout |awk '{printf("%9s | %10d %11d | %11d %12d | %12d %13d\n",$1,$2/128,$3/128,$2/1024,$3/1024,$4,$5)}'


腳本3:  
#!/bin/bash  
# test network width  
function usage  
{  
 echo "Usage: $0?? "  
 echo "?????? e.g. $0 eth0 2"  
 exit 65  
}  
if [ $# -lt 2 ];then  
usage  
fi  
typeset in in_old dif_in  
typeset out out_old dif_out  
typeset timer  
typeset eth  
eth=$1  
timer=$2  
in_old=$(cat /proc/net/dev | grep $eth | sed -e "s/\(.*\)\:\(.*\)/\2/g" | awk ' { print $1 }' )  
out_old=$(cat /proc/net/dev | grep $eth | sed -e "s/\(.*\)\:\(.*\)/\2/g" | awk ' { print $9 }' )  
while true  
do  
sleep ${timer}  
in=$(cat /proc/net/dev | grep $eth | sed -e "s/\(.*\)\:\(.*\)/\2/g" | awk ' { print $1 }' )  
out=$(cat /proc/net/dev | grep $eth | sed -e "s/\(.*\)\:\(.*\)/\2/g" | awk ' { print $9 }' )  
dif_in=$(((in-in_old)/timer))  
dif_out=$(((out-out_old)/timer))  
echo "IN: ${dif_in} Byte/s OUT: ${dif_out} Byte/s"  
in_old=${in}  
out_old=${out}  
done  
exit 0

上述就是小編為大家分享的三個(gè)監(jiān)控linux網(wǎng)卡流量腳本是什么了,如果剛好有類(lèi)似的疑惑,不妨參照上述分析進(jìn)行理解。如果想知道更多相關(guān)知識(shí),歡迎關(guān)注億速云行業(yè)資訊頻道。

向AI問(wèn)一下細(xì)節(jié)

免責(zé)聲明:本站發(fā)布的內(nèi)容(圖片、視頻和文字)以原創(chuàng)、轉(zhuǎn)載和分享為主,文章觀(guān)點(diǎn)不代表本網(wǎng)站立場(chǎng),如果涉及侵權(quán)請(qǐng)聯(lián)系站長(zhǎng)郵箱:is@yisu.com進(jìn)行舉報(bào),并提供相關(guān)證據(jù),一經(jīng)查實(shí),將立刻刪除涉嫌侵權(quán)內(nèi)容。

AI