返回顶部
首页 > 资讯 > 服务器 >Shell脚本实现的单机流量统计功能
  • 1359
分享到

Shell脚本实现的单机流量统计功能

脚本单机流量统计 2022-06-04 21:06:03 1359人浏览 八月长安
摘要

在网上看到这个单机流量的脚本,挺不错的。 #!/bin/sh usage(){ echo “Usage: $0 [-i INTERFACE] [-s INTERVAL] [-c COUNT]” ec

在网上看到这个单机流量的脚本,挺不错的。

#!/bin/sh

usage(){

echo “Usage: $0 [-i INTERFACE] [-s INTERVAL] [-c COUNT]”

echo

echo “-i INTERFACE”

echo “    The interface to monitor, default is eth0.”

echo “-s INTERVAL”

echo “    The time to wait in seconds between measurements, default is 3 seconds.”

echo “-c COUNT”

echo “    The number of times to measure, default is 10 times.”

exit 3

}

readargs(){

while [ "$#" -gt 0 ] ; do

  case “$1″ in

   -i)

    if [ "$2" ] ; then

     interface=”$2″

     shift ; shift

    else

     echo “Missing a value for $1.”

     echo

     shift

     usage

    fi

   ;;

   -s)

    if [ "$2" ] ; then

     sleep=”$2″

     shift ; shift

    else

     echo “Missing a value for $1.”

     echo

     shift

     usage

    fi

   ;;

   -c)

    if [ "$2" ] ; then

     counter=”$2″

     shift ; shift

    else

     echo “Missing a value for $1.”

     echo

     shift

     usage

    fi

   ;;

   *)

    echo “Unknown option $1.”

    echo

    shift

    usage

   ;;

  esac

done

}

checkargs(){

if [ ! "$interface" ] ; then

  interface=”eth0″

fi

if [ ! "$sleep" ] ; then

  sleep=”3″

fi

if [ ! "$counter" ] ; then

  counter=”10″

fi

}

printrxbytes(){

/sbin/ifconfig “$interface” | grep “RX bytes” | cut -d: -f2 | awk ‘{ print $1 }'

}

printtxbytes(){

/sbin/ifconfig “$interface” | grep “TX bytes” | cut -d: -f3 | awk ‘{ print $1 }'

}

bytestohumanreadable(){

multiplier=”0″

number=”$1″

while [ "$number" -ge 1024 ] ; do

  multiplier=$(($multiplier+1))

  number=$(($number/1024))

done

case “$multiplier” in

  1)

   echo “$number Kb”

  ;;

  2)

   echo “$number Mb”

  ;;

  3)

   echo “$number Gb”

  ;;

  4)

   echo “$number Tb”

  ;;

  *)

   echo “$1 b”

  ;;

esac

}

 

printresults(){

while [ "$counter" -ge 0 ] ; do

  counter=$(($counter ? 1))

  if [ "$rxbytes" ] ; then

   oldrxbytes=”$rxbytes”

   oldtxbytes=”$txbytes”

  fi

  rxbytes=$(printrxbytes)

  txbytes=$(printtxbytes)

  if [ "$oldrxbytes" -a "$rxbytes" -a "$oldtxbytes" -a "$txbytes" ] ; then

   echo “$(/bin/date +%Y%m%d-%H%M%S) RXbytes = $(bytestohumanreadable $(($rxbytes ? $oldrxbytes))) TXbytes = $(bytestohumanreadable $(($txbytes ? $oldtxbytes)))”

  else

   echo “Monitoring $interface every $sleep seconds. (RXbyte total = $(bytestohumanreadable $rxbytes) TXbytes total = $(bytestohumanreadable $txbytes))”

  fi

  sleep “$sleep”

done

}

readargs “$@”

checkargs

printresults

测试如下:

每三秒的流量,总输出999行,可以输出到文件里,其中:前面为时间,Rx Packets 是接收数据包,即下载,Tx Packets 是发送数据包,即上传.

[root@host]#sh t.sh -c 999  Monitoring eth0 every 3 seconds. (RXbyte total = 6 Tb TXbytes total = 5 Tb)

20101105-201539 RXbytes = 126 Kb TXbytes = 658 Kb

20101105-201542 RXbytes = 87 Kb TXbytes = 487 Kb

20101105-201545 RXbytes = 159 Kb TXbytes = 668 Kb

20101105-201548 RXbytes = 107 Kb TXbytes = 725 Kb

20101105-201551 RXbytes = 110 Kb TXbytes = 704 Kb

20101105-201554 RXbytes = 90 Kb TXbytes = 726 Kb

20101105-201558 RXbytes = 100 Kb TXbytes = 850 Kb

20101105-201601 RXbytes = 102 Kb TXbytes = 703 Kb

20101105-201604 RXbytes = 168 Kb TXbytes = 693 Kb

20101105-201607 RXbytes = 105 Kb TXbytes = 730 Kb

20101105-201610 RXbytes = 133 Kb TXbytes = 711 Kb

20101105-201613 RXbytes = 431 Kb TXbytes = 703 Kb

20101105-201616 RXbytes = 84 Kb TXbytes = 527 Kb

20101105-201619 RXbytes = 239 Kb TXbytes = 825 Kb

20101105-201622 RXbytes = 117 Kb TXbytes = 801 Kb

20101105-201625 RXbytes = 99 Kb TXbytes = 913 Kb

20101105-201628 RXbytes = 89 Kb TXbytes = 322 Kb

20101105-201631 RXbytes = 63 Kb TXbytes = 73 Kb

20101105-201634 RXbytes = 84 Kb TXbytes = 191 Kb

20101105-201637 RXbytes = 174 Kb TXbytes = 481 Kb

20101105-201640 RXbytes = 120 Kb TXbytes = 383 Kb

20101105-201643 RXbytes = 94 Kb TXbytes = 496 Kb

20101105-201646 RXbytes = 108 Kb TXbytes = 340 Kb

20101105-201649 RXbytes = 91 Kb TXbytes = 639 Kb

20101105-201652 RXbytes = 106 Kb TXbytes = 629 Kb

20101105-201655 RXbytes = 125 Kb TXbytes = 496 Kb

20101105-201658 RXbytes = 90 Kb TXbytes = 537 Kb

20101105-201701 RXbytes = 114 Kb TXbytes = 641 Kb

--结束END--

本文标题: Shell脚本实现的单机流量统计功能

本文链接: https://lsjlt.com/news/18284.html(转载时请注明来源链接)

有问题或投稿请发送至: 邮箱/279061341@qq.com    QQ/279061341

猜你喜欢
  • Shell脚本实现的单机流量统计功能
    在网上看到这个单机流量的脚本,挺不错的。 #!/bin/sh usage(){ echo “Usage: $0 [-i INTERFACE] [-s INTERVAL] [-c COUNT]” ec...
    99+
    2022-06-04
    脚本 单机 流量统计
  • Shell中怎么实现单机流量统计功能
    本篇文章为大家展示了Shell中怎么实现单机流量统计功能,内容简明扼要并且容易理解,绝对能使你眼前一亮,通过这篇文章的详细介绍希望你能有所收获。#!/bin/shusage(){echo “Usage: $0 [-i INTERFACE] ...
    99+
    2023-06-09
  • 统计网卡流量的两段shell脚本(使用ifconfig)
    使用shell脚本计算Linux网卡流量,方法中最关键点: ifconfig $eth_name | grep bytes | awk '{print $6}' | awk -F : '{print $2...
    99+
    2022-06-04
    两段 网卡 脚本
  • shell脚本实现监控shell脚本的执行流程及变量的值
    很多时候,我们都会写shell程序来完成一些不用重复造轮子的时刻,但是,又因为shell语句中也会有函数,也会有变量,在运行后到底执行了哪些相关的操作,就需要对具体执行过程中的变量等可变的因素的监控,那么我...
    99+
    2022-06-04
    脚本 变量 流程
  • shell脚本实现文件锁功能
    1.背景 当多个进程可能会对同样的数据执行操作时,这些进程需要保证其它进程没有在操作,以免损坏数据。通常,这样的进程会使用一个“锁文件”,也就是建立一个文件来告诉别的进程自己在运行,如果检测到那个文件存在...
    99+
    2022-06-04
    脚本 功能 文件
  • 实时查看系统流量的Shell脚本分享
    #!/bin/bash while [ "1" ] do eth=$1 RXpre=$(cat /proc/net/dev | grep $eth | tr : " " | awk...
    99+
    2022-06-04
    脚本 实时 流量
  • C#实现简单计算器功能的脚本怎么写
    这篇文章主要介绍了C#实现简单计算器功能的脚本怎么写的相关知识,内容详细易懂,操作简单快捷,具有一定借鉴价值,相信大家阅读完这篇C#实现简单计算器功能的脚本怎么写文章都会有所收获,下面我们一起来看看吧。先来张效果图吧(5分钟写好,莫怪)代码...
    99+
    2023-06-29
  • 如何用Shell脚本实时查看系统流量
    本篇内容介绍了“如何用Shell脚本实时查看系统流量”的有关知识,在实际案例的操作过程中,不少人都会遇到这样的困境,接下来就让小编带领大家学习一下如何处理这些情况吧!希望大家仔细阅读,能够学有所成!代码如下:#!/bin/bash ...
    99+
    2023-06-09
  • 如何用shell脚本实现监控shell脚本的执行流程及变量的值
    本篇内容主要讲解“如何用shell脚本实现监控shell脚本的执行流程及变量的值”,感兴趣的朋友不妨来看看。本文介绍的方法操作简单快捷,实用性强。下面就让小编来带大家学习“如何用shell脚本实现监控shell脚本的执行流程及变量的值”吧!...
    99+
    2023-06-09
  • 怎么用shell脚本实现LINUX下的流量监控
    本篇内容主要讲解“怎么用shell脚本实现LINUX下的流量监控”,感兴趣的朋友不妨来看看。本文介绍的方法操作简单快捷,实用性强。下面就让小编来带大家学习“怎么用shell脚本实现LINUX下的流量监控”吧!一、脚本源码# vi /etc/...
    99+
    2023-06-09
  • Shell脚本实现的基于SVN的代码提交量统计工具
    最近没啥事,就用bash写了一个基于svn的代码统计小工具。 可以指定统计的目录,默认递归统计子目录。 目前还没有屏蔽指定目录的功能。哈 代码比较粗糙。不过先晒出来。 #!/bin/bash - #...
    99+
    2022-06-04
    脚本 代码 工具
  • Win7系统使用JS脚本实现关机功能
     Win7 32位系统使用JS格式设置关机脚本分享给大家,操作系统过程中遇到关机的方法有很多种,比如通过Shutdown命令设置关机快捷方式,还可以使用js格式设置关机脚本,具体操作如下:1、按&ld...
    99+
    2023-06-14
    Win7系统 JS脚本 关机 脚本 JS 系统
  • shell批量curl接口脚本的简单实现方法
    前言 相信大家应该都有所体会,shell脚本可以说作用非常大,在服务器领域,用shell操作事务可比手动点击要方便快捷得多了。虽然只是文字界面,但是其强大的处理功能,会让各种操作超乎想象。而且,也可以将这些...
    99+
    2022-06-04
    批量 脚本 接口
  • shell脚本通过expect实现自动单边无密登录功能
    最近项目需要实现单边无密登录,去网上搜索了下相关文章,实践之后发现几乎都不能用。于是结合expect的使用方法自行写了一个,通过验证可用。现在总结在这供需要的朋友参考。 代码如下: EXPECT=/us...
    99+
    2022-06-04
    脚本 功能 shell
  • 一个强大的网络分析shell脚本分享(实时流量、连接统计)
    介绍一个强大的分析网络的shell脚本,此脚本是从EZHTTP拆分出来的,觉得有必要单独介绍下。 脚本运行效果截图: 此脚本包含的功能有: 1、实时监控任意网卡的流量 2、统计10秒内平均流量 3、统计...
    99+
    2022-06-04
    脚本 实时 流量
  • Shell脚本怎么实现防CC攻击功能
    这篇文章主要讲解了“Shell脚本怎么实现防CC攻击功能”,文中的讲解内容简单清晰,易于学习与理解,下面请大家跟着小编的思路慢慢深入,一起来研究和学习“Shell脚本怎么实现防CC攻击功能”吧!实现代码:代码如下:#!/bin/shcd&n...
    99+
    2023-06-09
  • 利用Shell脚本实现调快调慢系统时间功能
    本篇内容介绍了“利用Shell脚本实现调快调慢系统时间功能”的有关知识,在实际案例的操作过程中,不少人都会遇到这样的困境,接下来就让小编带领大家学习一下如何处理这些情况吧!希望大家仔细阅读,能够学有所成!代码如下:#!/bin/bash&n...
    99+
    2023-06-09
  • shell脚本实现数据库表增量同步的流程
    需求:   每天定时将 源数据库 study_plan 库的 zxxt_class 表   增量同步到 目标数据库 axt_statistics 库的 zxxt_class 表中 ...
    99+
    2022-06-04
    shell数据库表增量同步 shell数据库表增量同步
  • 如何实现Shell脚本制作的终端会话回放功能脚本
    这篇文章主要介绍“如何实现Shell脚本制作的终端会话回放功能脚本”,在日常操作中,相信很多人在如何实现Shell脚本制作的终端会话回放功能脚本问题上存在疑惑,小编查阅了各式资料,整理出简单好用的操作方法,希望对大家解答”如何实现Shell...
    99+
    2023-06-09
  • shell脚本实现统计文件大小、批量创建用户的示例
    统计文件大小 需求: 每小时执行一次脚本,当时间为0点或12点时,清空/data/logs目录下所有日志文件的内容(包括该目录下的子目录里的文件),其他时间只需统计每个文件UDafukeeGr的大小,一个文件一行,记...
    99+
    2022-06-04
    shell统计文件大小 shell 批量创建用户
软考高级职称资格查询
编程网,编程工程师的家园,是目前国内优秀的开源技术社区之一,形成了由开源软件库、代码分享、资讯、协作翻译、讨论区和博客等几大频道内容,为IT开发者提供了一个发现、使用、并交流开源技术的平台。
  • 官方手机版

  • 微信公众号

  • 商务合作