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 的多個功能吧,別忘了在下面的評論部分和我們分享你的想法。