Linux last和lastlog命令:查看过去登陆的用户信息

前面,我们已经学了使用 w 或 who 命令查看当前登陆系统的用户信息,但如果原先登录的用户现在已经退出登录,那么是否还能查看呢?当然可以,这就需要使用 last 和 lastlog 命令。

last 命令可以查看当前和过去登陆系统用户的相关信息;lastlog 命令可以查看到每个系统用户最近一次登陆系统的时间。

我们先来看看 last 命令,此命令的基本格式如下所示:

[root@localhost ~]# last [选项]

表 1 罗列出了该命令常用的选项及含义。

表 1 last 命令常用选项及含义
选项 含义
-a 把从何处登陆系统的主机名或 IP 地址显示在最后一行。
-R 不显示登陆系统的主机名或 IP 地址。
-x 显示系统关机、重新开机以及执行等级的改变等信息。
-n 显示列数 设置列出信息的显示列数。
-d 将显示的 IP 地址转换成主机名称。

在执行 last 命令时,它默认会读取 /var/log/wtmp 日志文件,这是一个二进制文件,不能直接用 vi 编辑,只能通过 last 命令调用。

【例 1】查询当前和过去登录的用户信息。

[root@localhost ~]# last
root pts/0 192.168.0.108 Fri Jun 7 09:53 still logged in
root tty1 Fri Jun 7 09:53 still logged in
root pts/0 192.168.0.101 Fri Jun 7 06:53 - 09:52 (02:59)
root pts/1 192.168.0.103 Fri Jun 7 04:12 - 04:30 (00:18)
#用户名 登录终端 登录IP 登录时间 - 退出时间(在线时间)
reboot system boot 2.6.32-279.el6.i Thu Jun 6 23:53 - 00:03 (00:09)
#还能看到系统的重启时间
…省略部分输出…


再来看看 lastlog 命令,此命令可以查看登陆过当前系统用户的最近一次登陆时间,比如:

[root@localhost ~]#lastlog
#用户名        端口    来自                最后登陆时间
Username    Port   From                Latest
root             pts/1  192.168.1.100  Wed Mar  4 11:04:22 +0800 2009
bin                                                  **Never logged in**
....(中间省略)....
vbird1          pts/2  192.168.1.100  Wed Mar  4 13:15:56 +0800 2009
....(以下省略)....

lastlog 命令默认是去读取 /var/log/lastlog 日志文件的,这个文件同样是二进制文件,不能直接用 vi 编辑,需要使用 lastlog 命令调用。