bmon 是类 Unix 系统中一个基于文字,简单但非常强大的 互联网监视和除错工具,它能抓取互联网相关统计资讯并把它们以使用者友好的格式展现出来。它是一个可靠高效的频宽监视和网速估测工具。
它能使用各种输入模组读取输入,并以各种输出模式显示输出,包括互动式文字使用者介面和用于指令码编写的可程式设计文字输出。
在 Linux 上安装 bmon 频宽监视工具
几乎所有 Linux 发行版的预设仓库中都有 bmon 站群软件包,可以从预设包管理器中轻松安装,但可用的版本可能比较旧。
$ sudo yum install bmon [On RHEL/CentOS/Fedora]
$ sudo dnf install bmon [On Fedora 22+]
$ sudo apt-get install bmon [On Debian/Ubuntu/Mint]
另外,你也可以从 https://pkgs.org/download/bmon 获取对应你 Linux 发行版的 .rpm 和 .deb 站群软件包。
如果你想要最新版本 (例如版本 4.0) 的 bmon,你需要通过下面的命令从原始码构建。
在 CentOS 、 RHEL 和 Fedora 中
$ git clone https://github.com/tgraf/bmon.git
$ cd bmon
$ sudo yum install make libconfuse-devel libnl3-devel libnl-route3-devel ncurses-devel
$ sudo ./autogen.sh
$ sudo./configure
$ sudo make
$ sudo make install
在 Debian 、 Ubuntu 和 Linux Mint 中
$ git clone https://github.com/tgraf/bmon.git
$ cd bmon
$ sudo apt-get install build-essential make libconfuse-dev libnl-3-dev libnl-route-3-dev libncurses-dev pkg-config dh-autoreconf
$ sudo ./autogen.sh
$ sudo ./configure
$ sudo make
$ sudo make install
如何在 Linux 中使用 bmon 频宽监视工具
通过以下命令执行它 (初学者说明:RX 表示每秒接收资料,TX 表示每秒传送资料):
$ bmon
bmon – Linux 频宽监视按 d 键可以检视更详细的频宽使用情况的图形化统计资讯,参考下面的截图。
bmon – Detailed Bandwidth Statistics 按 Shift + ? 可以检视快速指南。再次按 Shift + ? 可以退出 (指南) 介面。
bmon – 快速指南通过 Up 和 Down 箭头键可以检视特定网络卡的统计资讯。但是,要监视一个特定的网络卡,你也可以像下面这样作为命令列引数指定。
选项 -p 指定了要显示的网络卡,在下面的例子中,我们会监视网络卡 enp1s0:
$ bmon -p enp1s0
bmon – 监控乙太网频宽要检视每秒位数而不是每秒位元组数,可以像下面这样使用 -b 选项:
$ bmon -bp enp1s0
我们也可以像下面这样按秒指定重新整理间隔时间:
$ bmon -r 5 -p enp1s0
如何使用 bmon 的输入模组
bmon 有很多能提供网络卡统计资料的输入模组,其中包括:
netlink – 使用 Netlink 协议从核心中收集网络卡和流量控制统计资讯。这是预设的输入模组。
proc – 从 /proc/net/dev 档案读取网络卡统计资讯。它被认为是传统介面,且提供了向后相容性。它是 Netlink 介面不可用时的备用模组。
dummy – 这是用于除错和测试的可程式设计输入模组。
null – 停用资料收集。
要检视关于某个模组的其余资讯,可以像下面这样使用 help 选项呼叫它:
$ bmon -i netlink:help
下面的命令将启用 proc 输入模组执行 bmon:
$ bmon -i proc -p enp1s0
如何使用 bmon 输出模组
bmon 也使用输出模组显示或者汇出上面输入模组收集的统计资料,输出模组包括:
curses – 这是一个互动式的文字使用者介面,它提供实时的网上估计以及每个属性的图形化表示。这是预设的输出模组。
ascii – 这是用于使用者检视的简单可程式设计文字输出。它能显示网络卡列表、详细计数以及图形到控制台。当 curses 库不可用时这是预设的备选输出模组。
format – 这是完全指令码化的输出模式,供其它程式使用 – 意味著我们可以在后面的指令码和程式中使用它的输出值进行分析。
null – 停用输出。
像下面这样通过 help 选项获取更多的模组资讯。
$ bmon -o curses:help
下面的命令会用 ascii 输出模式执行 bmon:
$ bmon -p enp1s0 -o ascii
bmon – Ascii 输出模式我们也可以用 format 输出模式,然后在指令码或者其它程式中使用获取的值:
$ bmon -p enp1s0 -o format
bmon – Format 输出模式想要其它的使用资讯、选项和事例,可以阅读 bmon 的 man 手册:
$ man bmon
访问 bmon 的 Github 仓库:https://github.com/tgraf/bmon 。
就是这些,在不同场景下尝试 bmon 的多个功能吧,别忘了在下面的评论部分和我们分享你的想法。