博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
监控linux流量shell版
阅读量:6232 次
发布时间:2019-06-21

本文共 2550 字,大约阅读时间需要 8 分钟。

想要实时查看linux流量情况,又不想再去下第三方工具,可以直接写脚步运行!

系统:centos 6.5

原理:从/proc/net/dev中获取到流量情况,再通过换算并除以间隔时间来得到流量单位M

#------------------#Author:Administrator#Created:2015-04-10#------------------#!/bin/bash#使用方法usage(){  echo "useage: $0 ethname intervel"  exit 0}#网口配置if [ $# -gt 1 ];then  ethname=$1  num=`ifconfig|grep ${ethname}|wc -l`  if [ $num -gt 0 ];then   ethname=$1  else    echo "Can't find $ethname,Please Check"    exit 1  fifi#时间配置intervel=1if [ $# -gt 0 ]; then  interval=$2  test=`expr "$interval" \* 0`  if [ "$test" != "0" ]; then         echo "Invalid 
param '$interval' . It should be a integer number. Usage: $0 ethname intervel" exit -1 fi if [ $interval -lt 1 ]; then echo "Invalid
param '$interval' . It should be > 0 (seconds). Usage: $0 ethname intervel" exit -1 fifi#函数判断if [ $# -ne 2 ]then usagefiecho "$0 is starting,Device is $1,Intervel is $2"echo -e "\n"typeset Rev old_Reveth=$1intervel=$2old_Rev=`cat /proc/net/dev|grep $eth| awk '{print $1}'| awk -F : '{print $2}'`old_Send=`cat /proc/net/dev|grep $eth|awk '{print $9}'`#echo "old_Rev is $old_Rev"#echo "Old_send is $old_Send"while true do sleep $intervel Rev=`cat /proc/net/dev|grep $eth|awk '{print $1}'|awk -F : '{print $2}'` Send=`cat /proc/net/dev|grep $eth|awk '{print $9}'`#echo "Rev is $Rev"#echo "Send is $Send" diff_1=`awk -v Rev=$Rev -v old_Rev=$old_Rev -v intervel=$intervel 'BEGIN{printf "Receive is %6.2f", ( Rev - old_Rev ) / 1024 / 1024 / intervel * 8}'` diff_2=`awk -v Send=$Send -v old_Send=$old_Send -v intervel=$intervel 'BEGIN{printf "Send is %6.2f", ( Send - old_Send ) / 1024 / 1024 / intervel * 8}'` echo "`date +'%Y-%m-%d %H:%M:%S'` Speed: IN ${diff_1} mbps OUT ${diff_2} mbps" old_Rev=$Rev old_Send=$Senddone

 效果如下:

[root@localhost tools]# ./bandwidth.sh eth0 1 ./bandwith.sh is starting,Device is eth0,Intervel is 1Ctrl+C To Stop!2015-11-13 16:49:34 Speed: IN Receive is   0.02 mbps OUT Send is   0.01 mbps2015-11-13 16:49:35 Speed: IN Receive is   0.01 mbps OUT Send is   0.00 mbps2015-11-13 16:49:36 Speed: IN Receive is   0.01 mbps OUT Send is   0.00 mbps

 

在centos 7中,/proc/net/dev显示与centos 6有点差距,所以如果在centos 7中使用,需要将以下两个地方更改:

 

old_Rev=`cat /proc/net/dev|grep $eth| awk '{print $2}'`old_Send=`cat /proc/net/dev|grep $eth|awk '{print $10}'`#---------------------------------------------------------------------Rev=`cat /proc/net/dev|grep $eth| awk '{print $2}'`Send=`cat /proc/net/dev|grep $eth|awk '{print $10}'`

 

 

 

如使用有问题,请联系:

362299908@qq.com

转载于:https://www.cnblogs.com/landhu/p/4961157.html

你可能感兴趣的文章
到底是用"静态类"还是单例
查看>>
Redis RedLock 完美的分布式锁么?
查看>>
深入剖析Redis系列(八) - Redis数据结构之集合
查看>>
js:原生单张图片延迟加载(图片自己找)
查看>>
关于iOS中委托(Delegate)的几点看法
查看>>
读书笔记-Java高并发程序设计(一)
查看>>
spring cloud微服务分布式云架构 - Spring Cloud简介
查看>>
用vue-cli3导入外部的iconfont.css图标样式遇到的坑:These relative modules were not found:...
查看>>
ObjC RunLoop简析
查看>>
李笑来哭了,韭菜财经们笑了
查看>>
《快学 Go 语言》第 15 课 —— 反射
查看>>
既生 Redis 何生 LevelDB ?
查看>>
给自己出的iOS面试题
查看>>
2.1.5 Python元类深刻理解(metaclass)
查看>>
Node.js 系列 - 搭建静态资源服务器
查看>>
ScratchView:一步步打造万能的 Android 刮奖效果控件
查看>>
万绿从中一点蓝,一篇无用的文章
查看>>
如何在1到100的整数数组上找到缺失的数字
查看>>
BBC 新闻数据可视化 Cookbook
查看>>
力扣(LeetCode)22
查看>>