前面,我们已经学了使用 w 或 who 命令查看当前登陆系统的用户信息,但如果原先登录的用户现在已经退出登录,那么是否还能查看呢?当然可以,这就需要使用 last 和 lastlog 命令。
last 命令可以查看当前和过去登陆系统用户的相关信息;lastlog 命令可以查看到每个系统用户最近一次登陆系统的时间。
我们先来看看last 命令,此命令的基本格式如下所示:
[root@localhost ~]# last [选项]
表 1 罗列出了该命令常用的选项及含义。
选项 | 含义 |
---|---|
-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 命令调用。