用户的登录日期和登录时间


25

我想获取用户的登录时间和登录日期,Unix中是否有任何命令提供用户的登录日期和用户的登录时间?我想在Shell-script中执行此问题,其中最终用户接受用户名,并在检查用户的可用性之后,我想在不同的变量中获取该用户的登录时间和登录日期,然后使用“ echo”命令显示。

Answers:


32

对于过去的登录:

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)。请注意,上次登录可能与上次注销不对应(例如,用户长时间从一个来源保持连接状态,并且最近进行了快速网络登录)。


我知道“谁”命令正在提供所有用户的登录信息,但是我想拥有“登录日期”和“登录时间”,并且我不希望用户信息是过去的登录信息,而是用户接受的用户名并希望获取有关该用户的信息
Paresh Mayani 2010年

?最后的“ $ username”提供“登录日期”和“登录时间”。您的句子的第二部分对我来说不清楚,可能是我的英语,也可能是您的...“用户接受的用户名[...]”?
echox

@Paresh:我已经用尽各种方式来解释您的问题。如果我的回答仍然没有帮助,请尝试使您的问题更清晰。
吉尔斯(Gillles)“所以-不要再邪恶了”,2010年

@Paresh:last $USER_NAME还将显示当前用户。它将显示类似username ttyp0 192.168.1.100 Tue Sep 13 13:09 still logged in
Stefan Lasiewski

@Gilies让我清除我实际要执行的操作,我要制作一个shell脚本,在其中我接受用户名作为“ read $ username”,然后我要检查用户是否登录,如果是的,那么我想获取他们的登录时间和登录日期,谢谢支持
Paresh Mayani 2010年

3

在linux上,last -R $username | awk '/still logged in/ {print $3,$4,$5,$6}'如果用户未登录,将不返回任何内容,否则将返回每个活动会话的日期/时间列表。

其他不知道-R最后一个选项的unix(代替主机名)将需要进行一些修改。

By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.