欢迎光临
我们一直在努力

三个监控linux网卡流量脚本是什么

这期内容当中小编将会给大家带来有关三个监控linux网卡流量脚本是什么,文章内容丰富且以专业的角度为大家分析和叙述,阅读完这篇文章希望大家可以有所收获。

脚本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

上述就是小编为大家分享的三个监控linux网卡流量脚本是什么了,如果刚好有类似的疑惑,不妨参照上述分析进行理解。如果想知道更多相关知识,欢迎关注云搜网行业资讯频道。

赞(0)
【声明】:本博客不参与任何交易,也非中介,仅记录个人感兴趣的主机测评结果和优惠活动,内容均不作直接、间接、法定、约定的保证。访问本博客请务必遵守有关互联网的相关法律、规定与规则。一旦您访问本博客,即表示您已经知晓并接受了此声明通告。