本文介绍了计算linux网卡流量的一个shell脚本,一个通过固定间隔时间获取ifconfig eth0 的字节值而计算出网卡流量的方法,有需要的朋友参考下。

使用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
if [ -n "$1" ]; then
eth_name=$1
else
eth_name="eth0"
fi
if [ -n "$2" ]; then
all_time=$2
else
all_time=900
fi i=0 v1_b=`ifconfig $eth_name | grep bytes | awk '{print $6}' | awk -F : '{print $2}'`
v2_b=`ifconfig $eth_name | grep bytes | awk '{print $2}' | awk -F : '{print $2}'` v1_t=$v1_b
v2_t=$v2_b #echo "$v1_t" while [ $i -le $all_time ]; do sleep 1 v1_c=`ifconfig $eth_name | grep bytes | awk '{print $6}' | awk -F : '{print $2}'`
#echo "$v1_c"
v2_c=`ifconfig $eth_name | grep bytes | awk '{print $2}' | awk -F : '{print $2}'` i=`expr $i + 1` v1_rate=`expr \( $v1_c - $v1_t \) / 1024`
v2_rate=`expr \( $v2_c - $v2_t \) / 1024` v_rate=`expr \( $v1_rate + $v2_rate \) ` v1_t=$v1_c
v2_t=$v2_c
v1_avg_rate=`expr \( $v1_c - $v1_b \) / $i / 1024`
v2_avg_rate=`expr \( $v2_c - $v2_b \) / $i / 1024`
v_avg_rate=`expr \( $v1_avg_rate + $v2_avg_rate \) ` clear
echo "========================================================="
echo "`date`"
echo "send: $v1_rate KB/s accept: $v2_rate KB/s netrate: $v_rate KB/s avg send: $v1_avg_rate KB/s avg accept: $v2_avg_rate KB/s avg rate: $v_avg_rate KB/s"
echo "=========================================================="
done

shell脚本计算Linux网卡流量的更多相关文章

  1. Shell脚本查看linux系统性能瓶颈(转)

    Shell脚本查看linux系统性能瓶颈(转自:http://blog.51cto.com/lizhenliang/1687612) [root@test ~]# cat show_sys_info. ...

  2. shell脚本兼容linux/unix与windows/cygwin的基础(注意处理好CR, LF, CR/LF 回车 换行的问题)

    shell脚本兼容linux/unix与windows/cygwin的基础 :统一文本格式为:unix文本格式,即于LF为换行符(推荐方案) 在notepad上设置:编辑->档案格式转换-> ...

  3. 170509、文本编辑器编写的shell脚本在linux下无法执行的解决方法

    今天碰到一个奇怪的问题,编写好的shell脚本再linux上执行一直提示找不到文件或目录,后来想想是文本编辑器的问题,记录下来!!! 1.查看当前文本格式 Notepad++界面中,在右下角有文件格式 ...

  4. Shell脚本对Linux进行文件校验

    Shell脚本对Linux进行文件校验 一.需求 有客户等保需求对文件一致性进行校验,想到利用md5sum工具,因此写脚本来对文件进行自定义扫描,后期可以利用其进行校验,快速校验文件发现变更的文件,一 ...

  5. shell 脚本在linux中的应用

    shell脚本在linux中应用广泛,之前一直选用python写脚本来进行一些文件操作,但是最后发现shell脚本非常方便,所以特意来学习下皮毛,便于提高自己效率 定义变量 1 country=&qu ...

  6. Linux之Shell脚本计算命令行的所有和

    问题:设计一个Shell脚本:求命令行上所有整数和 Shell代码: 调用add.sh脚本结果:

  7. Shell脚本 | 性能测试之启动流量

    安卓应用的流量统计有多种方式,点击「阅读原文」可以看到一篇别人写的文章,关于安卓流量数据的获取,写的挺全的,列举了几种不同方式的优劣.(见文末参考链接) 今天我要分享的是通过脚本一键获取应用的启动流量 ...

  8. [shell脚本]在Linux终端可视化输出表格数据

    最终效果 1. 自定义表格样式 2. 自定义主题颜色 支持三系普通颜色 支持16色彩虹色 支持单颜色 回顾一下shell语法 1. shell传递参数 我们可以在执行shell脚本时实时传递参数从而指 ...

  9. 使用Shell脚本对Linux系统和进程资源进行监控

    ShellLinux脚本 摘要:Shell语言对于接触Linux的人来说都比较熟悉,它是系统的用户界面,提供了用户与内核进行交互操作的一种接口.本文我们以Bash做为实例总结了使用Shell对系统和进 ...

随机推荐

  1. CVAT 用户指南

    用户指南 计算机视觉标注工具(CVAT)是基于 Web 为计算机视觉算法标注视频和图像的在线工具. 它的灵感来自Vatic免费的.在线的.交互式的视频注释工具. CVAT有许多强大的功能: 在关键帧之 ...

  2. robotframework定位页面内Frame框架里的元素

    在自动化开发中,会遇到在页面内部点开一个新的页面后,新的页面元素无法定位到的情况,如点击下图的上传图片,弹出的界面无法直接定位到: 遇到这种情况需要查看弹出界面是否是Frame框架页面:打开火狐浏览器 ...

  3. es6使用场景

    es6非空判断 示例1 es5 if(value !== null && value !== undefined && value !== ''){ //... } e ...

  4. ES6-字符串-模板字符串(复习+学习)

    昨天学习了字符串对象和字符串的表示,就是利用utf-8等不同的编码方式,还有许多的对象方法,都是处理字符串的方法,挺方便的,今天我学习了一下字符串模板,这里记录i一下学习的笔记,当然,今天学习了部分内 ...

  5. 使用grep命令,玩转代码审计寻找Sink

    好久没分享东西了,今天分享个实用代码审计技巧 使用grep,玩转代码审计,适用于linux/mac,windows需要另行安装grep: 使用场景如下:快速寻找项目中所有的Sink,快速寻找符合适配条 ...

  6. PHP、TP6框架及JavaScript的单步调试

    目录 一.PHP程序的调试 1. 单个PHP程序的调试 2. PHP框架代码的调试 二.JavaScript程序的调试 三.总结 参考资料:https://www.bilibili.com/video ...

  7. c++学习笔记(四)

    动态内存分配 使用new分配内存 1.指针的用处是在运行阶段分配未命名的内存以储存值. 2.在此情况下,只能通过指针来访问内存. int *ptr_int=new int;//在内存阶段为一个int值 ...

  8. 部署一个支持Dapr 的Kubernetes APISIX Ingress

    在这篇文章中,我将展示如何创建一个 APISIX控制器,该控制器在 Kubernetes 集群中公开启用 Dapr 的应用程序. 本质上,APISIX控制器将配置相同的标准 Dapr annotati ...

  9. vue.js学习与实战笔记(2)

    驼峰式写法时需要注意的问题 学习到组件这一章时,由于没注意到vue中对于camelCased的解释,导致出错了都找不出来,后面发现 在使用驼峰式写法时,在使用模板的时候需要使用kebab-case命名 ...

  10. [cf1290D]Coffee Varieties

    思路 统计数的种类数,也等价于统计有多少个数满足其之前没有与其相同的数 将序列以$\frac{k}{2}$为块大小分块,那么即会有$m=\frac{2n}{k}$个块 (关于$k=1$的情况,以1为块 ...