如何实时监控 Linux 用户和进程?

linuxopen sourceoperating system

Linux 是一款开源操作系统,在开发人员和系统管理员中越来越受欢迎。它以其稳定性、安全性和灵活性而闻名,并广泛应用于企业环境中。然而,与任何操作系统一样,密切关注系统性能以确保一切运行顺畅至关重要。这就是实时监控用户和进程的关键所在。

在本文中,我们将讨论如何实时监控 Linux 用户和进程。

我们将介绍一些用于此目的的最常用工具,例如 w、who、last、top 和 htop,它们用于管理 Linux 子系统中的用户和进程。在文章的下一部分,我们将解释如何使用这些工具来实时监控系统性能。

实时监控 Linux 用户

首先,我们将讨论如何实时监控 Linux 用户。一些最常用的命令行工具可以帮助您监控用户活动,例如 w、who 和 last 命令。让我们逐一详细了解它们。

1. w 命令

'w' 命令负责显示所有当前登录用户的列表,以及他们的登录时间、当前进程和系统负载。

该命令使用起来非常简单。只需在终端中输入 'w' 即可查看当前登录到系统的用户列表。

示例

$ w

输出

 16:36:11 up 7 days,  6:21,  1 user,  load average: 0.07, 0.02, 0.00
USER     TTY      FROM             LOGIN@   IDLE   JCPU   PCPU WHAT
user1    pts/0    192.168.1.1      09:13    0.00s  0.02s  0.00s w

上述命令的输出显示当前只有一个用户登录,即 user1。它还显示了该用户的登录时间、终端(TTY)、远程 IP 地址以及当前系统负载。

2. who 命令

'who' 命令与 'w' 命令非常相似。唯一的区别在于,它只显示当前登录用户的列表,而没有其他详细信息。

同样,使用此命令也非常简单。只需在 Linux 终端中输入 'who' 即可。

示例

$ who

输出

user1  pts/0        2022-04-01 09:13 (192.168.1.1)

如上所示,'who' 命令仅显示已登录用户的列表、他们的终端和 IP 地址,而 'w' 命令则显示更多信息。

3. last 命令

'last' 命令显示所有最近的登录和注销记录。要查看此列表,请在终端中输入 'last'。

示例

$ last

输出

user1    pts/0        192.168.1.1      Fri Apr  1 09:13   still logged in
user2    pts/1        192.168.1.2      Thu Mar 31 14:05 - 14:14  (00:08)
user3    pts/2        192.168.1.3      Thu Mar 31 13:44 - 13:49  (00:05)

如上所示,'last' 命令会显示最近登录和注销的用户列表,以及每个用户的日期、时间和 IP 地址。

现在我们了解了一些用于实时监控用户的基本命令行工具。接下来,让我们了解如何实时管理进程。

实时监控 Linux 进程

在本文的这一部分,我们将介绍如何实时监控 Linux 系统中的进程。虽然有很多工具可以实现此目的,但我们将重点介绍两个常用的命令行工具:top 和 htop。

1. top 命令

首先,我们来看一下 top 命令。top 是一个内置的命令行工具,可以显示实时系统信息,包括 CPU 使用率、内存使用率和正在运行的进程。

要启动 top 命令,请打开终端并在命令提示符中输入"top"。输出将实时更新并显示系统的当前状态。

示例

$ top

以下是 top 命令的示例输出 -

输出

top - 22:07:36 up  2:24,  2 users,  load average: 0.00, 0.00, 0.00
Tasks: 127 total,   1 running, 126 sleeping,   0 stopped,   0 zombie
%Cpu(s):  0.3 us,  0.3 sy,  0.0 ni, 99.4 id,  0.0 wa,  0.0 hi,  0.0 si,  0.0 st
MiB Mem :   7941.1 total,   4157.1 free,   2448.8 used,   1335.3 buff/cache
MiB Swap:   2048.0 total,   2048.0 free,      0.0 used.   5045.6 avail Mem 
  PID USER      PR  NI    VIRT    RES    SHR S  %CPU  %MEM     TIME+ COMMAND  
 1432 root      20   0  339968  55808  19112 S   1.0   0.7   0:44.08 Xorg     
 2462 username  20   0  908564  95916  54456 S   0.3   1.2   0:10.32 gnome-te+
 2586 username  20   0 2203836 297076 111832 S   0.3   3.6   1:01.09 gnome-sh+
 3122 username  20   0 2415716 407556  92312 S   0.3   5.0   1:47.80 firefox 
    1 root      20   0  168952   9724   6664 S   0.0   0.1   0:02.62 systemd  
    2 root      20   0       0      0      0 S   0.0   0.0   0:00.03 kthreadd 

如您所见,输出结果显示了进程 ID (PID)、用户、CPU 使用率、内存使用率等信息。您还可以根据不同的标准(例如 CPU 使用率或内存使用率)对输出结果进行排序。为此,请按"O"键(大写字母 O),然后选择要排序的字段。

接下来,我们来看看 htop 命令。

2. htop 命令

htop 是 top 命令的更高级版本,它提供了更友好的用户界面和更多功能,例如可以在进程列表中垂直和水平滚动。

htop 的输出结果采用颜色编码,使其更易于阅读和理解。它还提供了一些其他功能,例如按名称搜索特定进程、按 CPU 使用率筛选进程,甚至可以直接从 htop 界面终止进程。

要启动 htop,请打开终端并在命令提示符中输入"htop"。

输出将实时更新,并显示系统的当前状态。
$ htop

以下是输出示例

如上图所示,htop 提供了许多关于系统上运行进程的有用信息,包括 CPU 和内存使用情况、进程 ID 等。您可以使用方向键浏览界面,也可以按相应的键按各种条件对进程进行排序(例如,按 F6 按 CPU 使用率排序)。

除了 top 和 htop 命令之外,还有其他一些工具可用于实时监控 Linux 进程,例如 iotop、nethogs 和 iftop。

结论

在本文中,我们讨论了如何实时监控 Linux 用户和进程。首先,我们介绍了一些常用的命令行工具,例如 w、who 和 last,用于监控 Linux 用户。在文章后半部分,我们讨论了一些最流行的 Linux 用户和进程监控工具,例如 top 和 htop。通过使用这些工具,您可以识别性能瓶颈、排查问题并优化系统,使其流畅运行。无论您是系统管理员还是开发人员,这些工具都能帮助您监控和优化 Linux 系统,从而最大限度地提高效率。


相关文章


有用资源