• 一个统计服务器网络流量的小程序


    因为工作需要,要统计一下服务器的网络吞吐量,并且出一个图表。在搜索网络吞吐量软件时候,看到这篇文章,于是决定用脚本来实现这个功能。bigtall在原文的启发下,做了一些修改,去掉了对unix工具的依赖,把它变成了一个纯的批处理文件。希望能给有需要的人帮助。

     1 @echo off
     2 :args
     3 rem 处理参数
     4 if "%1" == "" goto help
     5 
     6 set stopfile="%temp%\netflow.stop"
     7 if "%1" == "stop" goto stop
     8 if "%1" == "start" goto start
     9 goto help
    10 
    11 :start
    12 rem 继续分析start参数
    13 set outfile=
    14 set outcon=1
    15 if "%2" == "" goto main
    16 set outcon=
    17 if "%2" == "console" set outcon=1
    18 if not "%2" == "console" set outfile=%2
    19 if "%3" == "console" set outcon=1
    20 if "%outfile%" == "" if not "%3" == "console" set outfile=%3
    21 
    22 :main
    23 echo 本程序每5秒统计一下网卡的流量, ctrl+c退出
    24 
    25 rem 删除stop记录
    26 if exist %stopfile% del //f %stopfile%
    27 rem 首次流量记录,初始化
    28 echo WScript.Sleep(5000); > sleep.js
    29 set curdate1=%date%
    30 set curdate=%curdate1:~0,10%
    31 set curdate1=
    32 
    33 if "%outfile%" == "" goto label2
    34 if not exist %outfile% echo 日期,时间,接收总字节,发送总字节,本次接收字节,本次发送字节>>%outfile%
    35 :label2
    36 rem 其中字段内容为:日期,时间,接受总字节,发送总字节,本次接受字节,本次发送字节
    37 for /"tokens=1,2,3" %%i in ('netstat -e ^| findstr 字节') do set prevrecv=%%j&&set prevsend=%%k
    38 :begin
    39 if exist %stopfile% goto mainexit
    40 for /"tokens=1,2,3" %%i in ('netstat -e ^| findstr 字节') do set recv=%%j&&set send=%%k
    41 set /a nrecv=%recv:~-9% - %prevrecv:~-9%
    42 set /a nsend=%send:~-9% - %prevsend:~-9%
    43 set prevrecv=%recv%
    44 set prevsend=%send%
    45 if "%outfile%" == "" goto label3
    46 echo %curdate%,%time%,%recv%,%send%,%nrecv%,%nsend% >> %outfile%
    47 :label3
    48 if "%outcon%" == "1" echo %curdate%,%time%,%recv%,%send%,%nrecv%,%nsend%
    49 cscript ////nologo sleep.js
    50 goto begin
    51 :mainexit
    52 if exist %stopfile% del //f %stopfile%
    53 if exist sleep.js del //f sleep.js
    54 goto end
    55 
    56 :stop
    57 echo 通知发送完成
    58 echo . > %stopfile%
    59 goto end
    60 
    61 :help
    62 echo 网络流量统计
    63 echo usage: netflow [start^|stop] [console] [logfile]
    64 echo        start   开始运行,并输出到指定文件
    65 echo        stop    停止统计
    66 echo        console 运行输出时,输出一份到控制台
    67 echo        logfile 运行输出时,输出一份到指定文件
    68 goto end
    69 
    70 :end
    71 
  • 相关阅读:
    自动化:Appium运行成功,取得一个小的胜利
    调优案例1
    HTTP请求方式中8种请求方法(简单介绍)
    Java中基本类型和引用类型(简单介绍)
    @WebListener 注解方式实现监听(eclipse和idea)
    Git免密码提交
    在idea配置jetty和创建(包、文件)javaWeb以及Servlet简单实现
    emmet工具使用和技巧
    Markdown基本语法总结
    viewport原理和使用和设置移动端自适应的方法(移动适应电脑)
  • 原文地址:https://www.cnblogs.com/BigTall/p/1507157.html
Copyright © 2020-2023  润新知