如何计算使用Linux命令按用户分组的用户会话?
我有一个运行在Linux操作系统上的应用程序。要使用应用程序,用户启动终端并使用他们的Linux帐户登录,然后提示他们输入应用程序登录菜单,然后输入应用程序登录凭据。
我的问题是,当用户使用完该应用程序并注销时,他们的Linux会话仍然处于活动状态。所以每次我都要运行命令
killall -u [Linux username]对于具有3个以上活动会话的用户。
我用了命令
w | sort 为了获得一个用户列表,但是我在网上找不到任何帮助,说明如何根据Linux用户名对列表进行分组。
我打算根据用户名对输出列表进行分组,然后用3行以上的用户名计数,然后运行
killall -u [username]我认为许多人可能会发现知道一个特定用户名(userid)有多少会话是有效的,因为这些会话可能会降低机器的总体性能。在我的例子中,每次活动会话建立时,承载应用程序的机器的响应时间都会恶化。
发布于 2015-01-13 04:23:35
尝试:
w | sed '1,2d' | cut -f1 -d' ' | sort | uniq -c这将返回每个用户一行,其中包含每个用户会话的#。例如:
1 root
15 sa
2 superuser
1 user1
3 user2在这种情况下,用户sa有15个会话,user2有3个会话。
https://stackoverflow.com/questions/27914737
复制相似问题