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

使用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.jb51.net
# 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
(0)

相关推荐

  • Centos下查看网卡的实时流量命令

    可以通过iptraf命令查看网卡的实时流量,图像非常直观. 今天在测试服务器上准备看下网络流量 复制代码 代码如下: [root@localhost ~]# iptraf -d eth0 -bash: iptraf: command not found 发现运维同事没有给安装,只能自己手工安装了 首先安装需要的包: 复制代码 代码如下: yum -y install gcc yum -y install glibc yum -y install ncurses 安装完毕之后 我们现在开始安装ip

  • python监控网卡流量并使用graphite绘图的示例

    复制代码 代码如下: #!/usr/bin/env pythonimport sys,timefrom socket import socketdef read_interface(in_file):    with file(in_file) as f:        return f.readlines()[2:]def set_interface(inter_msg):    dic={}    for i in xrange(len(inter_msg)):        dic[int

  • 一个监控网卡流量的shell脚本

    实现代码: #!/bin/bash eth_in_old=$(ifconfig eth0|grep "RX bytes"|sed 's/RX bytes://'|awk '{print $1}') eth_out_old=$(ifconfig eth0|grep "RX bytes"|sed 's/.*TX bytes://'|awk '{print $1}') sleep 1 eth_in_new=$(ifconfig eth0|grep "RX byt

  • Shell脚本查看网卡实时流量

    复制代码 代码如下: #!/bin/bash while [ "1" ] do eth=$1 RXpre=$(cat /proc/net/dev | grep $eth | tr : " " | awk '{print $2}') TXpre=$(cat /proc/net/dev | grep $eth | tr : " " | awk '{print $10}') sleep 1 RXnext=$(cat /proc/net/dev | gr

  • Linux服务器网卡流量查看方法 shell和Python各一枚

    有时我们需要较为实时的查看服务器上的网卡流量,这里我写了两个小脚本,一个用shell(先写的,一次只能查看一个网卡),另一个用Python(后写的,一次可查看多个网卡). 脚本中都用了while true"死循环",每隔10s从"/proc/net/dev"中取一次值并根据10s内的差值计算10s内的平均带宽:按ctrl+c停止执行.脚本兼容centos6和7 两个脚本都不太复杂,而且脚本中注释也比较细致,所以我就不过多解释脚本内容了. 直接上图上脚本: shell

  • Python脚本实现网卡流量监控

    #/usr/bin/env/python #coding=utf-8 import sys,re,time,os maxdata = 50000 #单位KB memfilename = '/tmp/newnetcardtransdata.txt' netcard = '/proc/net/dev' def checkfile(filename): if os.path.isfile(filename): pass else: f = open(filename, 'w') f.write('0'

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

    使用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:340806

  • linux下统计appche站点IP访问量的shell脚本

    经常需要根据IP地址统计apache站点访问量,最基本的脚本. 根据IP访问量降序排列: 复制代码 代码如下: #!/bin/bash#Script_name: access_count acc_log=/usr/local/apache2/logs/access_log /bin/awk '{print $1}' $acc_log  | sort | uniq -c | sort -nr 执行效果: 复制代码 代码如下: [root@zabbix ~]# sh access_count  94

  • 一个用了统计CPU 内存 硬盘 使用率的shell脚本

    复制代码 代码如下: #!/bin/bash#This script is use for describle CPU Hard Memery Utilizationtotal=0idle=0system=0user=0nice=0mem=0vmexec=/usr/bin/vmstatwhich sar > /dev/null 2>&1if [ $? -ne 0 ]then  ver=`vmstat -V | awk '{printf $3}'`  nice=0  temp=`vmst

  • 两段Perl脚本代码(数组应用与say用法)

    一.数组应用 复制代码 代码如下: #!/usr/bin env perl@zeng = `top -b -n 1`;foreach (@zeng) {print "$_\n";} 二.say的用法:自动换行 复制代码 代码如下: #!/user/bin env perluse 5.010; #表示使用perl 5.10的版本.say "Hello World!";my @fred = above_average(1..10);print "\@fred

  • Linux用户建立脚本/猜字游戏/网卡流量监控介绍

    目录 1.用户建立脚本 2.猜字游戏 3.网卡流量监控 1.用户建立脚本 (1)设计文件判断模块 (2)设计用户建立 (3)文件内容 脚本内容 #!/bin/bash USERADD(){ #用户创建函数 RN=$(sed -n '$=' $1) for ((I=1;I<=$RN;I++)) do user=`sed -n "$I"p $1` password=`sed -n "$I"p $2` id $user &>/dev/null #判断该

  • shell脚本分析 nginx日志访问次数最多及最耗时的页面(慢查询)

    当服务器压力比较大,跑起来很费力时候.我们经常做站点页面优化,会去查找那些页面访问次数比较多,而且比较费时. 找到那些访问次数高,并且比较耗时的地址,就行相关优化,会取得立竿见影的效果的. 下面是我在做优化时候,经常用到的一段shell 脚本. 这个也可以算是,统计web页面的slowpage 慢访问页面,象mysql slowquery . 以下是我的:nginx 配制 复制代码 代码如下: log_format  main  '$remote_addr - $remote_user [$ti

  • 通过Shell脚本批量创建服务器上的MySQL数据库账号

    1.项目背景 因监控需要,我们需要在既有的每个MySQL实例上创建一个账号.公司有数百台 MySQL 实例,如果手动登入来创建账号很麻烦,也不现实.所以,我们写了一个简单的shell脚本,用来创建批量服务器的mysql 账号.  2.执行脚本内容; #!/bin/bash ## 此段shell 脚本的主要功能是实现在多个SQL Server IP实例上,创建账号.输入参数是两个,第一个是数据库所在的IPs,即多个Server IP构成的字符串,IP间用逗号隔开.第二个参数是 端口(3306 或

  • 用Shell脚本快速搭建Ubuntu下的Nodejs开发环境

    nodejs的确是很火,以前倒腾过,但是从来没有认真记录下什么.在ubuntu下搭建它的开发环境尝尝鲜,有一个捷径,它能让系统自动帮你安装所需要的东西,我们生成一段shell脚本,让它来完成以下工作: 安装 git下最新的node,node包管理器,Forever和Cloud9IDE工具(可选),mongodb 10gen:注:脚本的正常运行需要比较新版本的Ubuntu,而且需要联网,因为它会连接网络去下载所有的依赖包顺序安装. 1.脚本代码: 复制代码 代码如下: #!/bin/shecho

  • 一个强大的网络分析shell脚本分享(实时流量、连接统计)

    介绍一个强大的分析网络的shell脚本,此脚本是从EZHTTP拆分出来的,觉得有必要单独介绍下. 脚本运行效果截图: 此脚本包含的功能有: 1.实时监控任意网卡的流量 2.统计10秒内平均流量 3.统计每个端口在10秒内的平均流量,基于客户端和服务端端口统计.可以看出哪些端口占流量比较大,对于web服务器,一般是80端口.其它端口受到攻击时,也有可能其它端口流量比较大.所以此功能可以帮助我们端口流量是否正常. 4.统计在10s内占用带宽最大的前10个ip.此项功能可以帮助我们来查出是否有恶意占用

随机推荐