终端中监控系统资源的5个优秀Linux工具

1. Ncdu

熟悉 Vim 的人会感到如鱼得水,因为它使用 Vim 键进行导航;而喜欢用箭头键的人也不会对 Vim 感到不满。就像基于终端的文件管理器一样,你可以毫不费力地深入到目录中。对于每个目录,ncdu 会显示目录的大小。这是一个简单的小工具,只做一件事,并且做得很好。

Ncdu 可能在大多数官方发行库中找到。

要在 Debian 及其衍生版本上安装它,例如 Ubuntu、Linux Mint 等:

sudo apt-get install ncdu

要在红帽及其衍生版上安装,例如,Fedora:

sudo dnf install ncdu

在 Arch 及其衍生版本上安装它:

sudo pacman -S ncdu

2. Btop++

因为它提供了我整个系统的广泛概述,Btop无疑是我最喜欢的工具之一。它显示了CPU、磁盘、内存和网络利用率的条形图和图表。此外,"进程"窗格具有类似于top的界面,可让您过滤和终止单个进程。

要筛选进程,请按 F 键,要结束高亮显示的进程,请按 K 键。

Btop 界面最棒的地方之一是它的适应性非常简单。Btop 附带了预设,您可以通过按 P 键轻松切换它们。每个预设都会显示一组独特的面板。


除此之外,您可以通过按一个键来启用或禁用任何窗格。Btop使您能够轻松快速地更改对系统资源的_视图_。

乐趣并未止步于此,因为对于那些没有它们会感到迷失的人,还有(再次)Vim 键。

Btop 是对标准顶部实用程序的重大升级。

它可以通过大多数本地发行版的仓库获得。对于某些发行版,它可以在相应的_额外_仓库中获得。对于其他人,您可以通过Brew或Snap安装它。

3. 带状物

Bandwhich 是一个实时网络监控工具,能够显示实时网络连接。它与 netstat 的不同之处在于它专注于实时活动连接。它与 tcpdump 的区别在于它不是一个无尽的数据包流。

sudo bandwhich

方便的是,bandwhich 提供了两个简单的功能来帮助您捕获和查看连接。首先,您可以随时按 Space 键暂停捕获,以获取连接的快照。其次,您可以在累积模式下运行它,这样会逐步将进程和带宽统计信息添加到列表中,而不会将其移除——类似于日志。

sudo bandwhich --total-utilization # Or -t

我更喜欢 Bandwhich 而不是其他工具,比如 tcpdump,因为它简单方便,使我能够快速识别哪些进程正在与网络联系。

它可以通过 Arch、Nix、Void 和 Fedora(Copr)仓库获取;对于其他人,您可以通过 Snap、Cargo,或直接通过 GitHub 发布版安装它。

在 Debian 及其衍生版(例如,Ubuntu 或 Mint)上安装它:

sudo apt-get install ncdu

在红帽及其衍生版(例如,Fedora)上安装它:

sudo dnf copr enable atim/bandwhich -y
sudo dnf install bandwhich

Fedora软件包会及时更新。其他RHEL发行版的软件包更新滞后,您可能会发现您的发行版版本尚不支持。

在 Arch 及其衍生版本上安装它:

sudo pacman -S bandwhich

如果您在安装过程中遇到问题,并且已设置 Rust 环境,可以退回到 cargo:

cargo install bandwhich

4. 我的 traceroute (mtr)

MTR命令就像tracepath的实时版本。Tracepath会按顺序对每个网络跳点ping固定次数;而MTR则会同时对每个网络跳点进行ping,直到停止。它在一个实时的curses界面中显示数据包丢失、抖动和延迟的实时统计信息。

mtr example.com

路由器通常会降低对 ICMP 数据包的优先级,因此在某些跳数上经常会看到高的丢包率。还要注意,如果您通过 VPN 连接,这些跳数更可能会限制 ICMP,但这并不意味着您有连接问题;这只是意味着您有 ICMP 问题。在这些情况下,切换到 TCP (-T) 或 UDP (-u) 很少能有所帮助。

MTR 还支持报告功能。使用 “-w” 标志可以生成 “宽” 报告,宽度足以容纳主机名。或者,使用 “-j” 输出 JSON。使用 “-c” 标志来设置探测的数量。

mtr -wc 1 example.com # Wide report; 1 probe.
mtr -jc 1 example.com # JSON report; 1 probe.


可选的选项很多,但一幅图胜过千言万语。

MTR 已经存在了几十年,并且在每个发行库中都可以找到。

5. 带宽监控器 (bmon)

Bmon 是一个表面上看起来简单的工具,用于实时监控带宽使用情况。虽然它不像其他工具那样显示主机信息,但它的唯一焦点是带宽。

bmon m
bmon -p 'eth*' # Listen to all hardwired interfaces.

您可以使用 ifconfig 查看您所有的接口。

确实,Btop++ 也提供实时带宽可视化,但 bmon 提供了一些额外的网络统计信息。当 bmon 打开时,按 D 或 i,它将打开附加窗格以提供额外的上下文。

bmon 的最佳功能之一是它可以脚本化。可以定义特定的输出字段,进行格式化,然后使用其他工具或脚本进一步处理。

bmon -p 'eth*' -o format:fmt='$(element:name) $(attr:rx:bytes) $(attr:tx:bytes) $(attr:rx:errors)\n'

要查看格式规则,请使用以下命令:

bmon -o format:help

Bmon 已经存在一段时间,并且在大多数官方发行库中都可以找到。

这些工具不能替代它们的标准 GNU/Linux 对应工具;它们只是解决特定的空白。许多标准工具没有实时监控能力,我们通常只想看看我们的系统是如何随着时间变化的。例如:

  • Tcpdump 发出大量文本;我只是想看看有什么连接到网络。
  • Du 从来不是以“搜索和摧毁”为设计初衷的——这与它的 dd 兄弟们不同。

尽管列出 的工具满足非常具体的需求,但并不解决所有需求——为此,您需要继续深入挖掘。

🔥运维干货分享

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

企鹅侠客

您的打赏是我创作旅程中的关键燃

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值