幾乎所有 linux 發行版的預設倉庫中都有 bmon 軟體包,可以從預設包管理器中輕松安裝,但可用的版本可能比較舊。
<code>$ sudo yum install bmon [on rhel/centos/fedora]</code>
<code>$ sudo dnf install bmon [on fedora 22+]</code>
<code>$ sudo apt-get install bmon [on debian/ubuntu/mint]</code>
如果你想要最新版本(例如版本 4.0)的 bmon,你需要通過下面的指令從源碼建構。
在 centos、rhel 和 fedora 中
<code>$ git clone https://github.com/tgraf/bmon.git</code>
<code>$ cd bmon</code>
<code>$ sudo yum install make libconfuse-devel libnl3-devel libnl-route3-devel ncurses-devel</code>
<code>$ sudo ./autogen.sh</code>
<code>$ sudo./configure</code>
<code>$ sudo make</code>
<code>$ sudo make install</code>
在 debian、ubuntu 和 linux mint 中
<code>$ sudo apt-get install build-essential make libconfuse-dev libnl-3-dev libnl-route-3-dev libncurses-dev pkg-config dh-autoreconf</code>
<code>$ sudo ./configure</code>
<a target="_blank"></a>
通過以下指令運作它(初學者說明:rx 表示每秒接收資料,tx 表示每秒發送資料):
<code>$ bmon</code>

bmon - linux 帶寬監視
按 <code>d</code> 鍵可以檢視更詳細的帶寬使用情況的圖形化統計資訊,參考下面的截圖。
bmon - detailed bandwidth statistics
按 <code>shift + ?</code> 可以檢視快速指南。再次按 <code>shift + ?</code> 可以退出(指南)界面。
bmon – 快速指南
通過 <code>up</code> 和 <code>down</code> 箭頭鍵可以檢視特定網卡的統計資訊。但是,要監視一個特定的網卡,你也可以像下面這樣作為指令行參數指定。
選項 <code>-p</code> 指定了要顯示的網卡,在下面的例子中,我們會監視網卡 <code>enp1s0</code>:
<code>$ bmon -p enp1s0</code>
bmon – 監控以太網帶寬
要檢視每秒位數而不是每秒位元組數,可以像下面這樣使用 <code>-b</code> 選項:
<code>$ bmon -bp enp1s0</code>
我們也可以像下面這樣按秒指定重新整理間隔時間:
<code>$ bmon -r 5 -p enp1s0</code>
bmon 有很多能提供網卡統計資料的輸入子產品,其中包括:
netlink - 使用 netlink 協定從核心中收集網卡和流量控制統計資訊。這是預設的輸入子產品。
proc - 從 <code>/proc/net/dev</code> 檔案讀取網卡統計資訊。它被認為是傳統界面,且提供了向後相容性。它是 netlink 接口不可用時的備用子產品。
dummy - 這是用于調試和測試的可程式設計輸入子產品。
null - 停用資料收集。
要檢視關于某個子產品的其餘資訊,可以像下面這樣使用 <code>help</code> 選項調用它:
<code>$ bmon -i netlink:help</code>
下面的指令将啟用 proc 輸入子產品運作 bmon:
<code>$ bmon -i proc -p enp1s0</code>
bmon 也使用輸出子產品顯示或者導出上面輸入子產品收集的統計資料,輸出子產品包括:
curses - 這是一個互動式的文本使用者界面,它提供實時的網上估計以及每個屬性的圖形化表示。這是預設的輸出子產品。
ascii - 這是用于使用者檢視的簡單可程式設計文本輸出。它能顯示網卡清單、詳細計數以及圖形到控制台。當 curses 庫不可用時這是預設的備選輸出子產品。
format - 這是完全腳本化的輸出模式,供其它程式使用 - 意味着我們可以在後面的腳本和程式中使用它的輸出值進行分析。
null - 停用輸出。
像下面這樣通過 <code>help</code> 選項擷取更多的子產品資訊。
<code>$ bmon -o curses:help</code>
下面的指令會用 ascii 輸出模式運作 bmon:
<code>$ bmon -p enp1s0 -o ascii</code>
bmon – ascii 輸出模式
我們也可以用 format 輸出模式,然後在腳本或者其它程式中使用擷取的值:
<code>$ bmon -p enp1s0 -o format</code>
bmon – format 輸出模式
想要其它的使用資訊、選項和事例,可以閱讀 bmon 的 man 手冊:
<code>$ man bmon</code>
原文釋出時間為:2017-04-11
本文來自雲栖社群合作夥伴“linux中國”