bmon - Real Time Bandwidth Monitor in Linux
我们已经知道带宽,因为我们都处在智能手机领域,并且使用3G和4G以及基于光纤的Internet进行家庭使用。 我们不知道它消失了(我的意思是带宽使用/利用率)以及任何泄漏。
带宽泄漏将导致通过网络运行应用程序的响应变慢。 因此,请仔细监视带宽尖峰,以避免不必要的泄漏。 bmon代表带宽监视工具,用于监视和调试与网络相关的问题。 它捕获实时带宽使用情况,并支持用于不同体系结构的各种输入方法。
它具有各种输出方法,例如HTML输出,ASCII输出,图形,交互式curses用户界面和用于脚本编写的可编程文本输出。
bmon显示系统上所有网络接口上的流量使用情况。
在Linux中安装bmon
大多数发行版(Debian,Ubuntu,Mint,Fedora,suse,openSUSE,Arch Linux,Manjaro,Mageia等)都具有bmon软件包,因此,我们可以从发行版官方存储库中轻松安装它。
对于基于Debian的系统,请使用apt-get或apt软件包管理器来安装bmon。
1 | $ sudo apt install bmon |
对于Fedora系统,请使用dnf软件包管理器安装bmon。
1 | $ sudo dnf install bmon |
对于openSUSE系统,请使用zypper软件包管理器安装bmon。
1 | $ sudo zypper in bmon |
对于基于Arch Linux的系统,请使用pacman软件包管理器安装bmon。
1 | $ pacman -S bmon |
对于CentOS系统,没有用于bmon的官方软件包,因此我们需要手动安装。 请按照以下步骤在CentOS6 / RHEL6上安装bmon。
1 2 3 4 5 6 7 | $ git clone https://github.com/tgraf/bmon.git && cd bmon $ sudo yum install make libconfuse-devel libnl3-devel libnl-route3-devel ncurses-devel $ ./autogen.sh $ ./configure $ make $ sudo make install $ bmon |
请遵循不提供官方软件包的CentOS 7和其他发行版的源安装方法。
安装libconfuse
1 2 3 4 5 | $ wget https://github.com/martinh/libconfuse/releases/download/v2.8/confuse-2.8.zip $ unzip confuse-2.8.zip && cd confuse-2.8 $ sudo PATH=/usr/local/opt/gettext/bin:$PATH ./configure $ make $ sudo make install |
安装bmon
1 2 3 4 5 6 | $ git clone https://github.com/tgraf/bmon.git && cd bmon $ ./autogen.sh $ ./configure $ make $ sudo make install $ bmon |
监控实时带宽使用情况
在成功使用以上命令安装bmon之后。 只需在终端上触发以下命令即可监视带宽使用情况。
1 | # bmon |
默认情况下,bmon仅显示界面信息,如果要加载图形,请按
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 | lo bmon 3.9 Interfaces │ RX bps pps %│ TX bps pps % >lo │ 1.44KiB 24 │ 1.44KiB 24 qdisc none (noqueue) │ 0 0 │ 0 0 enp0s3 │ 156B 2 │ 152B 1 qdisc none (pfifo_fast) │ 0 0 │ 148B 1 ───────────────────────────────┴───────────────────────┴──────────────────────────────────────────────────────────────────────────────────────── KiB (RX Bytes/second) KiB (TX Bytes/second) 6.09 .........................|.................................. 6.09 .........................|.................................. 5.08 .........................||................................. 5.08 .........................||................................. 4.06 ..................|......||....................|............ 4.06 ..................|......||....................|............ 3.05 .....|.|..........|......||....................||.|....|.... 3.05 .....|.|..........|......||....................||.|....|.... 2.03 |.|..|.|..|......||......||....................||.|....|.... 2.03 |.|..|.|..|......||......||....................||.|....|.... 1.02 |||::||||:|::::||||:|::::|||::|::::|::::|::::||||:|::|:|:::| 1.02 |||::||||:|::::||||:|::::|||::|::::|::::|::::||||:|::|:|:::| 1 5 10 15 20 25 30 35 40 45 50 55 60 1 5 10 15 20 25 30 35 40 45 50 55 60 ───────────────────────────────────────┬───────────────────────────────────────┬──────────────────────────────────────────────────────────────── RX TX │ RX TX │ RX TX Bytes 15.51MiB 15.51MiB│ Packets 258.25K 258.25K │ Abort Error - 0 Carrier Error - 0 │ Collisions - 0 │ Compressed 0 0 CRC Error 0 - │ Dropped 0 0 │ Errors 0 0 FIFO Error 0 0 │ Frame Error 0 - │ Heartbeat Erro - 0 ICMPv6 0 0 │ ICMPv6 Checksu 0 - │ ICMPv6 Errors 0 0 Ip6 Address Er 0 - │ Ip6 Broadcast 0 0 │ Ip6 Broadcast 0 0 Ip6 CE Packets 0 - │ Ip6 Checksum E 0 - │ Ip6 Delivers 124.83K - Ip6 ECT(0) Pac 8 - │ Ip6 ECT(1) Pac 0 - │ Ip6 Forwarded - 0 Ip6 Header Err 0 - │ Ip6 Multicast 0 0 │ Ip6 Multicast 0 0 Ip6 No Route 0 0 │ Ip6 Non-ECT Pa 124.85K - │ Ip6 Reasm/Frag 0 0 Ip6 Reasm/Frag 0 0 │ Ip6 Reasm/Frag 0 0 │ Ip6 Reassembly 0 - Ip6 Too Big Er 0 - │ Ip6 Truncated 0 - │ Ip6 Unknown Pr 0 - Ip6Discards 0 0 │ Ip6Octets 8.34MiB 8.33MiB│ Ip6Pkts 124.86K 124.83K Length Error 0 - │ Missed Error 0 - │ Multicast - 0 Over Error 0 - │ Window Error - 0 │ ───────────────────────────────────────┼───────────────────────────────────────┼──────────────────────────────────────────────────────────────── MTU 65536 │ Flags loopback,up,running,lo │ Operstate unknown IfIndex 1 │ Address 00:00:00:00:00:00 │ Broadcast 00:00:00:00:00:00 Mode default │ TXQlen 1 │ Family unspec Alias │ Qdisc noqueue │ Fri Jan 27 18:35:43 2017 Press ? for help |
Bmon输出分为四个部分。
第一部分:显示可用接口,已接收和已传输字节。
第2部分:使用图形统计数据显示与上述相同的输出。
第3部分:显示有关已接收和已传输字节的详细信息。
第4部分:显示其他信息。
点击
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 | ┌───────────────QUICK REFERENCE────────────────┐ │ Navigation │ │ Up, Down Previous/Next element │ │ PgUp, PgDown Scroll up/down entire page │ │ Left, Right Previous/Next attribute │ │ [, ] Previous/Next group │ │ ? Toggle quick reference │ │ q Quit bmon │ │ │ │ Display Settings │ │ d Toggle detailed statistics │ │ l Toggle element list │ │ i Toggle additional info │ │ │ │ Graph Settings │ │ g Toggle graphical statistics │ │ H Start recording history data │ │ TAB Switch time unit of graph │ │ <, > Change number of graphs │ │ r Reset counter of element │ └──────────────────────────────────────────────┘ |
显示特定的界面使用情况
如果要显示特定的界面活动以进行更好的监视。 添加
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 | # bmon -p eth0 enp0s3 bmon 3.9 Interfaces │ RX bps pps %│ TX bps pps % >enp0s3 │ 11B 0 │ 11B 0 ───────────────────────────────┴───────────────────────┴───────────────────────────────────────────────────── B (RX Bytes/second) 618.00 ...........|................................................ 515.00 ...........|................................................ 412.00 ...........|................................................ 309.00 ...........|................................................ 206.00 ........|..|................................................ 103.00 .|......|..|................................................ 1 5 10 15 20 25 30 35 40 45 50 55 60 B (TX Bytes/second) 160.00 ........|................................................... 133.33 ........|................................................... 106.67 ........|................................................... 80.00 ........|................................................... 53.33 .|......|..|................................................ 26.67 .|......|..|................................................ 1 5 10 15 20 25 30 35 40 45 50 55 60 ─────────────────────────────────── Press d to enable detailed statistics ─────────────────────────────────── ───────────────────────────────── Press i to enable additional information ────────────────────────────────── Fri Jan 27 18:42:39 2017 Press ? for help |
设置读取间隔
默认情况下,bmon每1秒显示一次统计信息。 我们可以通过添加
1 | # bmon -r 5 |
获取ascii输出
默认情况下,bmon在curses模式下显示统计信息输出。 如果要以ascii模式获得输出,请添加
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 | # bmon -o ascii Interfaces RX bps pps % TX bps pps % lo 0 0 0 0 qdisc none (noqueue) 0 0 0 0 enp0s3 0 0 0 0 qdisc none (pfifo_fast) 0 0 0 0 Interfaces RX bps pps % TX bps pps % lo 239B 3 239B 3 qdisc none (noqueue) 0 0 0 0 enp0s3 0 0 0 0 qdisc none (pfifo_fast) 0 0 0 0 Interfaces RX bps pps % TX bps pps % lo 419B 6 419B 6 qdisc none (noqueue) 0 0 0 0 enp0s3 59B 0 59B 0 qdisc none (pfifo_fast) 0 0 53B 0 |
进一步了解bmon
如果您想了解更多适用于bmon的选项,只需导航至手册页。
1 2 3 4 | <span style="color:#848484">[bmon man page]</span> # bmon --help or # man bmon |