通过 ssh 登录时查看是否有本地用户登录

通过 ssh 登录时查看是否有本地用户登录

我需要在一台只能远程访问但也可用作工作站的机器上运行一些计算。有很多这样的机器,我想选一台“免费”的。免费在这种情况下意味着没有人在本地登录。

我第一次尝试的是who命令,但出于某种原因,它只列出了“选定”的用户,而我却无法真正找出他们是如何被选中的。下一次尝试::ps aux | cut -d " " -f1 | sort | uniq更好地显示一群恶魔,以及未显示的本地用户who

我当前的解决方案是进入并执行,ps aux | grep "gnome-session"这虽然更好,但仍然会给我带来很多垃圾。理想情况下,我正在寻找可以包含在 ssh 配置文件中的内容,以便在我登录时警告我有关(活动)本地用户的信息。

编辑:

  • 也没有who返回w本地用户。这是一种意外行为吗?
  • uptime另一方面向我展示了正确数量的用户(本地和远程减去 root 等系统用户)
  • finger未安装

答案1

使用w

手册页:

显示谁登录了以及他们正在做什么。

输出示例:

$ w
09:15:10 up 43 min,  2 users,  load average: 0.74, 0.38, 0.24

USER     TTY      FROM             LOGIN@   IDLE   JCPU   PCPU  WHAT

kucing   tty7     :0               08:32   43:15m 57.73s  0.18s x-session-manager
kucing   pts/0    :0.0             08:48    0.00s  0.24s  0.00s w´

答案2

finger命令是否已安装?如果没有,可能是吗?这应该列出所有已登录的用户以及从哪里登录(即另一台计算机,或直接登录到该计算机),还应该告诉您该用户闲置了多长时间。

查看ubuntu 手指手册页了解更多信息。

答案3

我会选择:

who | cut -d' ' -f1 | sort | uniq

这将显示以下列表真实的用户。如果列表为空 - 机器处于注销状态,等待某人登录。
ps aux还会显示一些系统用户,您可能不想看到这些用户。

答案4

考虑只为您的计算设置最高优先级。应避免占用可能登录的任何其他用户的资源。

nice -n 19 your_calculation_command

相关内容