我想获取用户的登录时间和登录日期,Unix中是否有任何命令提供用户的登录日期和用户的登录时间?我想在 Shell 脚本中执行这个问题,其中用户名从最终用户接受,并且在检查用户的可用性后,我想在不同的变量中获取该用户的登录时间和登录日期,然后使用“echo”命令显示。
答案1
对于过去的登录:
last "$USER_NAME"
此外,该命令who
还会列出当前登录。
如果您要查找用户上次登录的日期,某些系统会直接提供该日期,例如lastlog -u "$USER_NAME"
在 Linux 或lastlogin "$USER_NAME"
FreeBSD 上。它也可以在 的输出中使用finger
,但不是以易于解析的形式。无论如何,它都可以在last
(在许多 UNIX 变体上,last -n 1 "$USER_NAME"
显示最后一次登录;否则您可以这样做last "$USER_NAME" | head -n 1
)的输出中找到。请注意,上次登录可能与上次注销不对应(例如,用户长时间保持从一个源的连接,并且最近进行了快速网络登录)。
答案2
在 Linux 上,last -R $username | awk '/still logged in/ {print $3,$4,$5,$6}'
如果用户未登录,则不会返回任何内容,否则将返回每个活动会话的日期/时间列表。
其他不知道-R
Last 选项(抑制主机名)的 Unix 系统将需要进行一些修改。