Linux / Unix last 命令示例
我是 Linux 和 Unix 系统的新用户。如何在 Linux/Unix 类操作系统上查找用户和 tty 的最后登录信息?
您需要使用last 命令来显示最近使用过服务器的人以及登录和退出的日期/时间。本页为 Linux 和 Unix 开发人员解释了 last 命令示例。
上一个命令的详细信息 | |
---|---|
描述 | 显示最后登录的用户。 |
类别 | 用户信息 |
难度等级 | 简单的 |
Root 权限 | 是的 |
操作系统兼容性 | *BSD • Linux • macOS • Unix • WSL |
预计阅读时间 | 6 分钟 |
目的↑
找出特定用户上次登录Linux 或 Unix 服务器的时间。
Unix 和 Linux 系统管理员负责管理多用户服务器系统。通常,他们需要了解有关用户登录的详细信息。因此,我们使用 last 命令。请注意,last 命令从名为/var/log/wtmp 的系统文件或选项指定的文件中读取最后登录用户的列表-f。
语法↑
基本语法是:
last last [userNameHere] last [tty] last [options] [userNameHere]
如果没有提供任何选项,last 命令将显示自/var/log/wtmp文件创建以来登录(和退出)的所有用户的列表。您可以通过提供用户名和 tty 的名称来过滤结果,以仅显示与用户名或 tty 匹配的条目。
Linux 上一个命令示例↑
要找出最近登录和退出服务器的用户,请输入:
$ last
这是我所看到的:
root pts/1 10.1.6.120 Tue Jan 28 05:59 still logged in root pts/0 10.1.6.120 Tue Jan 28 04:08 still logged in root pts/0 10.1.6.120 Sat Jan 25 06:33 - 08:55 (02:22) root pts/1 10.1.6.120 Thu Jan 23 14:47 - 14:51 (00:03) root pts/0 10.1.6.120 Thu Jan 23 13:02 - 14:51 (01:48) root pts/0 10.1.6.120 Tue Jan 7 12:02 - 12:38 (00:35) wtmp begins Tue Jan 7 12:02:54 2014
了解最后一个命令的输出
让我们考虑以下输出行:
root pts/0 10.1.6.120 Tue Jan 28 04:08 still logged in
- root– 这是用户名。例如,对于 Linux/Unix 机器的重启和关闭等系统事件,使用唯一的用户名reboot来shutdown指示该活动。
- pts/0– 解释用户如何登录系统。例如,pts 表示伪终端会话(ssh 登录),tty 表示终端,:0、:1、(:2) X windows GUI 系统等。
- 10.1.6.120–用户登录系统的IP 地址或FQDN (或主机名)。
- Tue Jan 28 04:08– 用户登录活动的日期和时间戳(登录时间)。
- still logged in– 注销时间。
当然,你也可以使用-f选项指定搜索 /var/log/wtmp 以外的文件。例如,搜索 /nas/server/webserver/.log/wtmp:
$ last -f /nas/server/webserver/.log/wtmp
$ last -f /nas/server/webserver/.log/wtmp userNameHere
Linux 中的最后一条命令及其示例输出
$ last -n 10
$ last -n 10 reboot
reboot system boot 5.13.0-1019-aws Wed Mar 23 07:50 still running reboot system boot 5.13.0-1017-aws Wed Mar 16 21:49 - 07:50 (6+10:00) reboot system boot 5.13.0-1017-aws Fri Mar 11 09:55 - 21:49 (5+11:53) reboot system boot 5.13.0-1014-aws Sat Mar 5 09:07 - 09:54 (6+00:47) reboot system boot 5.11.0-1028-aws Wed Feb 2 08:11 - 09:07 (31+00:55) reboot system boot 5.11.0-1027-aws Thu Jan 20 04:22 - 08:11 (13+03:48) reboot system boot 5.11.0-1025-aws Tue Jan 11 11:03 - 04:21 (8+17:18) reboot system boot 5.11.0-1022-aws Tue Dec 14 22:08 - 11:02 (27+12:53) reboot system boot 5.11.0-1022-aws Tue Nov 30 19:29 - 22:08 (14+02:38) reboot system boot 5.11.0-1021-aws Thu Nov 18 10:57 - 19:28 (12+08:30) wtmp begins Sun Jun 27 20:53:20 2021
列出所有用户上次登录/退出时间↑
last 命令会搜索文件 /var/log/wtmp 文件,输出可能会回溯到几个月前。只需使用 less 命令或 more 命令(如下所示)一次显示一屏输出:
$ last | more
$ last | less
如何列出上次登录的特定用户↑
要查明用户 vivek 上次登录的时间,请输入:
$ last vivek
$ last vivek | less
$ last vivek | grep 'Thu Jan 23'
图 01 显示用户 vivek 上次登录服务器的时间
使用最后一条命令时隐藏热名↑
要隐藏主机名字段的显示,请传递-R选项:
示例输出:
$ last -R
$ last -R vivek
root pts/1 Tue Jan 28 05:59 still logged in root pts/0 Tue Jan 28 04:08 still logged in root pts/0 Sat Jan 25 06:33 - 08:55 (02:22) root pts/1 Thu Jan 23 14:47 - 14:51 (00:03) root pts/0 Thu Jan 23 13:02 - 14:51 (01:48) root pts/0 Tue Jan 7 12:02 - 12:38 (00:35) wtmp begins Tue Jan 7 12:02:54 2014
显示完整的登录和注销时间↑
默认情况下,last 命令现在显示年份。您可以通过传递选项强制 last 命令显示完整的登录和注销时间和日期-F。例如:
$ last -F
以下是我们看到的内容:
root pts/1 10.1.6.120 Tue Jan 28 05:59:08 2014 still logged in root pts/0 10.1.6.120 Tue Jan 28 04:08:01 2014 still logged in root pts/0 10.1.6.120 Sat Jan 25 06:33:11 2014 - Sat Jan 25 08:55:11 2014 (02:22) root pts/1 10.1.6.120 Thu Jan 23 14:47:42 2014 - Thu Jan 23 14:51:31 2014 (00:03) root pts/0 10.1.6.120 Thu Jan 23 13:02:51 2014 - Thu Jan 23 14:51:27 2014 (01:48) root pts/0 10.1.6.120 Tue Jan 7 12:02:54 2014 - Tue Jan 7 12:38:03 2014 (00:35) wtmp begins Tue Jan 7 12:02:54 2014
显示完整的用户/域名↑
$ last -w
显示上次重启时间↑
每次系统重启时,用户都会重新登录。因此,以下命令将显示自日志文件创建以来的所有重启日志:
示例输出:
$ last reboot
$ last -x reboot
reboot system boot 2.6.32-431.3.1.e Sun Jan 5 09:33 - 06:20 (22+20:46) reboot system boot 2.6.32-431.1.2.e Sat Dec 14 12:00 - 09:30 (21+21:29) reboot system boot 2.6.32-431.el6.x Sat Nov 23 03:08 - 11:57 (21+08:48) .... .. ... reboot system boot 2.6.32-220.2.1.e Mon Jan 23 17:48 - 17:50 (00:02) reboot system boot 2.6.32-131.0.15. Mon Jan 23 17:37 - 17:44 (00:07) wtmp begins Mon Jan 23 17:37:02 2012
显示上次关机时间↑
找出系统关闭条目和运行级别变化:
示例输出:
$ last -x
$ last -x shutdown
shutdown system down 2.6.32-431.1.2.e Sun Jan 5 09:30 - 09:33 (00:03) shutdown system down 2.6.32-431.el6.x Sat Dec 14 11:57 - 12:00 (00:03) .... .. .. shutdown system down 2.6.32-220.2.1.e Mon Jan 23 17:50 - 17:53 (00:03) shutdown system down 2.6.32-131.0.15. Mon Jan 23 17:45 - 17:48 (00:03)
找出特定时间登录的用户↑
查看指定时间的登录状态的语法如下:
换句话说,您可以显示直到指定时间格式的行:
$ last -t YYYYMMDDHHMMSS
$ last -t YYYYMMDDHHMMSS userNameHere
YYYYMMDDhhmmss YYYY-MM-DD hh:mm:ss YYYY-MM-DD hh:mm (seconds will be set to 00) YYYY-MM-DD (time will be set to 00:00:00) hh:mm:ss (date will be set to today) hh:mm (date will be set to today, seconds to 00) now yesterday (time is set to 00:00:00) today (time is set to 00:00:00) tomorrow (time is set to 00:00:00) +5min -5days
因此,我们可以使用以下语法:
$ last -t now
$ last -t +5min vivek
# see last three days login activity on linux for 'vivek' user #
$ last -t -3days vivek
查看错误登录尝试↑
使用 lastb 命令如下:
# lastb
[sudo] password for vivek: root ssh:notty 192.168.2.17 Sat Apr 2 00:00 - 00:00 (00:00) root ssh:notty 192.168.2.17 Sat Apr 2 00:00 - 00:00 (00:00) root ssh:notty 192.168.2.17 Fri Apr 1 00:00 - 00:00 (00:00) root ssh:notty 192.168.2.17 Fri Apr 1 00:00 - 00:00 (00:00) btmp begins Fri Apr 1 00:00:45 2022
相关媒体↑
本教程还提供简短视频格式:
总结↑
您了解了 Linux 和类 Unix 系统下的最后一个命令。请使用 man 命令或 help 命令阅读以下手册页:
$ man 1 last
$ man 5 wtmp