获取用户在UNIX中登录的次数

时间:2014-08-28 07:03:50

标签: bash shell unix ksh

有没有办法知道用户在who或其他方法的帮助下登录系统的次数(UNIX)?

4 个答案:

答案 0 :(得分:2)

你可以参考: Last command of unix

然后你可以操纵输出来计算你做的任何事情。

答案 1 :(得分:2)

如果你想要count用户登录的次数,那么通过command-line IMO就不可能......特别是因为有sudo选项假装其他用户可能会失败你的逻辑 - 如果你有

另外,how many times需要有一个时间段( from whenwhen )..所以你需要一个更高的时间段来自你想跟踪计数。所有这将是一个混乱理想只是为了保持count

如果我必须跟踪它,我最好的猜测是script并保持db-table保持count users正在记录的人在!

答案 2 :(得分:1)

您可以使用last

last | grep ^username| grep 'logged in' | wc -l

例如:

$ last | grep ^igor | grep 'still logged'
igor     pts/9        astaro       Thu Aug 28 09:55   still logged in   

它需要有关用户的信息'来自wtmp - 数据库(/var/log/wtmp)的登录。 这意味着,只显示此数据库中的条目。 你必须记住,tt是可能的,如果用户很久以前登录,则没有关于此登录的信息(因为轮换)。

另外,我必须注意,"用户登录的次数"有点模糊。 用户可以拥有正在运行的进程,但不能登录(或至少未在wtmp中注册), 用户可以使用su等等。

使用这种方式,您可以计算用户的开放终端会话数:

$ ps aux | grep ^igor | fgrep S+ | wc -l
12

答案 3 :(得分:0)

您可以将逻辑添加到/ etc / profile。 在日志文件中附加一行时,请不要忘记内务管理。 您可能希望每天生成一个日志文件并删除超过10天的文件。