如何找到谁在系统上登录以及他们正在做的事情

时间:2020-03-21 11:43:40  来源:igfitidea点击:

如果我们正在管理多用户服务器,我们通常需要查找系统上的系统以及所做的内容。
在Unix的系统中,有一个名为'w'的单字母命令,用于显示有关当前在服务器上的用户及其进程的信息。
当我们管理经常被许多用户访问的共享服务器时,此命令非常有用。
我们可以在不必使用任何其他工具或者应用程序的情况下跟踪所有这些。
"W"命令将显示详细信息,包括当前时间的系统运行的时间,当前登录了多少用户,以及过去1,5和15分钟的系统负载平均值。

在此简要教程中,我们将看到如何使用'w'命令监视Linux中的用户。

查找使用"W"命令查看谁在系统上登录

W命令的典型用法是:

$w [options] user

让我们看到一些实际的例子。

在命令提示符中键入'w'以查看服务器上记录谁。

$w

示例输出:

12:48:40 up 2 min, 4 users, load average: 0.31, 0.35, 0.15
USER TTY FROM Hyman@theitroad IDLE JCPU PCPU WHAT
root tty1 12:46 2:00 0.09s 0.09s -bash
sk pts/0 sk 12:47 1:26 0.04s 0.04s -bash
ostechni pts/1 sk 12:47 1:04 0.04s 0.04s -bash
root pts/2 sk 12:47 0.00s 0.05s 0.00s w

正如我们可以在上面的输出中看到的,"W"命令显示在服务器中登录的每个用户的以下详细信息。

  • 登录名
  • TTY名称
  • 远程主机
  • 登录时间
  • 空闲时间
  • JCPU,PCPU时间
  • 他们当前进程的命令行。

其中JCPU时间是添加到TTY的所有进程使用的时间,PCPU时间是当前过程使用的时间,名为"什么"字段中命名。

如果我们不想打印标题,只需使用-h选项如下。

$w -h

我们将看到下面的输出。

root tty1 12:46 2:29 0.09s 0.09s -bash
sk pts/0 sk 12:47 1:55 0.04s 0.04s -bash
ostechni pts/1 sk 12:47 1:33 0.04s 0.04s -bash
root pts/2 sk 12:47 5.00s 0.06s 0.01s w -h

如上都在上面的结果中看到,"w"命令显示所有用户的详细信息。
我们还可以使用如下所示的-u选项查看特定用户的详细信息。

$w theitroad

示例输出将是:

12:56:39 up 10 min, 4 users, load average: 0.00, 0.08, 0.10
USER TTY FROM Hyman@theitroad IDLE JCPU PCPU WHAT
ostechni pts/1 sk 12:47 2:15 0.05s 0.05s -bash

此外,我们可以使用-i选项显示"从"(远程主机名)字段中的"从"(远程主机名)字段的IP地址而不是主机名。

$w -i

示例输出:

12:58:31 up 12 min, 4 users, load average: 0.07, 0.08, 0.10
USER TTY FROM Hyman@theitroad IDLE JCPU PCPU WHAT
root tty1 12:46 11:51 0.09s 0.09s -bash
sk pts/0 192.168.43.192 12:47 8:39 0.04s 0.04s -bash
ostechni pts/1 192.168.43.192 12:47 4:07 0.05s 0.05s -bash
root pts/2 192.168.43.192 12:47 7.00s 0.08s 0.01s w -i

其中192.168.43.192是我通过ssh访问我的服务器的系统。

有关更多详细信息,请参阅man页面。

$man w