当前位置:  操作系统/服务器>linux

统计网卡流量的两段shell脚本(使用ifconfig)

    来源: 互联网  发布时间:2014-10-14

    本文导语:  使用shell脚本计算Linux网卡流量,方法中最关键点: 代码如下: ifconfig $eth_name | grep bytes | awk '{print $6}' | awk -F : '{print $2}' 通过ifconfig eth0|grep bytes 得到输入输出的流量。 代码如下: /@rac2=>dd2$ifconfig eth0|grep bytes RX bytes:1638005313300 (1...

使用shell脚本计算Linux网卡流量,方法中最关键点:

代码如下:

ifconfig $eth_name | grep bytes | awk '{print $6}' | awk -F : '{print $2}'


通过ifconfig eth0|grep bytes 得到输入输出的流量。

代码如下:

/@rac2=>dd2$ifconfig eth0|grep bytes
RX bytes:1638005313300 (1.4 TiB) TX bytes:3408060482049 (3.0 TiB)


再将结果通过awk 得出所要的字段值。
固定时间得到这些值,在写个循环计算一下就能得到网卡流量。
完整代码:

代码一:
代码如下:

#!/bin/bash
# 统计网卡流量
# link:www.
# 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

    
 
 

您可能感兴趣的文章:

  • Linux下如何获取网卡设备收发数据包相关统计数据?
  • 怎么用代码去获得网卡 网桥的收发统计信息(packets 数量,tx ,rx字节数量)?谢谢
  • shell脚本实现的网站日志分析统计(可以统计9种数据)
  • 急求apache IP、PV统计脚本。
  • 求一个shell脚本 统计文件数目并删除一些文件
  • 要对文件中包含特定字符串的行数进行统计,Shell脚本该如何写?急用!!在线等待
  • SQL Server统计SQL语句执行时间的脚本
  • 使用shell脚本分析网站日志统计PV、404、500等数据
  • python脚本实现统计日志文件中的ip访问次数代码分享
  • linux下统计appche站点IP访问量的shell脚本
  • 牛人来帮忙解析一个shell脚本(用于统计一个进程的内存使用情况)
  • 统计 cpu 内存 使用率的shell脚本代码
  • 一个用了统计CPU 内存 硬盘 使用率的shell脚本
  •  
    本站(WWW.)旨在分享和传播互联网科技相关的资讯和技术,将尽最大努力为读者提供更好的信息聚合和浏览方式。
    本站(WWW.)站内文章除注明原创外,均为转载、整理或搜集自网络。欢迎任何形式的转载,转载请注明出处。












  • 相关文章推荐
  • linux 命令 统计两个文件夹下 不同的文件(只统计文件名)
  • 如何得到一个字符串里的换行次数,我用StringTokenizer来统计的话如果有一个行没内容的话就会统计出错,好烦啊
  • Web日志统计工具 sawmill
  • 代码覆盖率统计工具gcov的扩展 lcov
  • 请问如何在UNIX下统计一批文件的大小啊?
  • php 统计字数(支持中英文)的实现代码
  • 源码统计工具 pepper
  • 邮件反病毒统计代理 DSPAM
  • Apache日志统计 GoAccess
  • 网站流量统计系统 AudiStat
  • 网页统计日志分析 SuperSeriousStats
  • 网站流量访问统计分析 SlimStat
  • JavaScript统计库 jStat
  • 如何用awk统计数据
  • 网络使用情况统计工具 AsItHappens
  • Oracle中关数据库对象的统计分析
  • 代码行数统计工具 uuStepCount
  • 磁盘使用统计工具 ncdu
  • Web网站统计 WebDruid
  • 查看memcached实时统计 statsproxy


  • 站内导航:


    特别声明:169IT网站部分信息来自互联网,如果侵犯您的权利,请及时告知,本站将立即删除!

    ©2012-2021,,E-mail:www_#163.com(请将#改为@)

    浙ICP备11055608号-3