我如何计算使用 linux bash 命令按用户分组的用户会话数?
How can i count user sessions grouped by users with linux bash command?
我如何计算使用 Linux bash 命令按用户分组的用户会话数?
我有一个 运行 在 Linux OS 上的应用程序。要使用应用程序,用户启动终端并使用他们的 Linux 帐户登录,然后系统会提示他们使用应用程序登录菜单,他们在其中输入应用程序登录凭据。
我的问题是,当用户使用完该应用程序并注销后,他们的 Linux 会话仍然处于活动状态。所以我时不时地 运行 命令
killall -u [Linux username]
对于超过 3 个活动会话的用户。
我使用了命令
w | sort
获取用户列表,但后来我找不到任何在线帮助说明如何根据 Linux 用户名对列表进行分组。
我打算根据用户名对输出列表进行分组,然后计算超过 3 行的用户名,然后 运行
killall -u [username]
我认为很多人可能会发现了解特定用户名 (userid
) 有多少会话是有用的,因为这些可能会降低机器的整体性能。在我的例子中,每次建立活动会话时,托管应用程序的机器的响应时间都会恶化。
尝试:
w | sed '1,2d' | cut -f1 -d' ' | sort | uniq -c
这将 return 每个用户一行,其中包含每个用户的会话数。例如:
1 root
15 sa
2 superuser
1 user1
3 user2
在这种情况下,用户 sa
有 15 个会话,user2
有 3 个会话。
我如何计算使用 Linux bash 命令按用户分组的用户会话数?
我有一个 运行 在 Linux OS 上的应用程序。要使用应用程序,用户启动终端并使用他们的 Linux 帐户登录,然后系统会提示他们使用应用程序登录菜单,他们在其中输入应用程序登录凭据。
我的问题是,当用户使用完该应用程序并注销后,他们的 Linux 会话仍然处于活动状态。所以我时不时地 运行 命令
killall -u [Linux username]
对于超过 3 个活动会话的用户。
我使用了命令
w | sort
获取用户列表,但后来我找不到任何在线帮助说明如何根据 Linux 用户名对列表进行分组。
我打算根据用户名对输出列表进行分组,然后计算超过 3 行的用户名,然后 运行
killall -u [username]
我认为很多人可能会发现了解特定用户名 (userid
) 有多少会话是有用的,因为这些可能会降低机器的整体性能。在我的例子中,每次建立活动会话时,托管应用程序的机器的响应时间都会恶化。
尝试:
w | sed '1,2d' | cut -f1 -d' ' | sort | uniq -c
这将 return 每个用户一行,其中包含每个用户的会话数。例如:
1 root
15 sa
2 superuser
1 user1
3 user2
在这种情况下,用户 sa
有 15 个会话,user2
有 3 个会话。