下午好!与特定问题冲突。帮我做决定。
给定:基于Debain操作系统的ftp服务器。一些用户正在下载文件。每个连接都有不同的下载速度。最大服务器上载速度-100 Mbit\sec
需要:通过上传速度获取频道加载速度。统计数据必须每n秒进行一次(例如,使用模式“Observer”)。结果必须是数字-当前正在上载kbit\sec的计数。
问:我怎样才能得到这个上传速度?可能存在Java内核库或外部库中的方法,它提供了在当前时刻获得上传速度的机会,或者可以使用另一种方法来实现?
可能的决定:只有一个决定,我从控制台Linux程序中得到统计数据并解析它。调用程序可以使用方法exec
。但是,我发现所有的程序都很难解析,因为它们都有自己的“控制台窗口”并且可以动态工作。我很想找到更合适的变体。
最佳答案
netdiag
包提供了两个有用的工具来监视网络
:netwatch
和netload
netload
将每秒显示所有接收到的/
传输字节和总数。
用法:netload <interface>
netwatch
将有助于列出
传输的数据。speedometer
命令将显示传输的
数据在终端上,可以通过apt
安装。用法:speedometer -r <interface> -t <interface>
vnstat
命令将显示实时发送/接收等。vnstat -l -i <interface>
man vnstat
:
vnStat是一个基于控制台的网络流量监视器。它每小时记录一次,
所选接口的每日和每月网络流量。然而,它
不是包嗅探器。从过程(5)读取交通信息,或
取决于可用性的sys文件系统。这样就可以使用vnStat
在大多数系统上没有根权限。
实现分为两个命令。vnstat的目的
命令提供查询存储的交通信息的接口
在网络接口特定的数据库中,其中作为守护进程vnsttd(1)的
负责数据的检索和存储。尽管守护进程是
它经常作为一种服务运行,实际上大部分时间都在使用
在数据更新之间休眠。