Linux Last命令示例
Linux last命令用于检查以前登录的用户到服务器中。
该命令在Linux中非常重要,因为它有助于审核跟踪。
假定Linux系统中发生了某些更改,在这种情况下,我们不确定谁进行了更改。
使用“ last”命令,我们可以确定在特定时间登录的人。
自创建文件以来,最后一个命令显示所有从'/var/log/wtmp'登录和退出的用户的列表。
Wtmp是一个日志文件,它捕获并记录每个登录和注销事件。
这是一个二进制文件,任何文本编辑器都无法查看。
这个技巧非常聪明,因为任何用户或者root用户都无法根据需要修改文件。
最后一条命令为我们提供有关所有已登录用户的名称,tty,IP地址(如果该用户进行远程连接)日期/时间以及该用户登录时间的信息。
如何运行last命令
我们只需要在控制台上输入“ last”即可。
这是示例:
$last leni pts/0 10.0.76.162 Mon Dec 2 12:32 - 13:25 (00:53) pungki tty1 Mon Dec 2 09:31 still logged in reboot system boot 2.6.32-358.23.2 Mon Dec 2 09:20 - 13:25 (04:05)
第一列:已登录用户的名称。
第二列为我们提供了有关用户连接方式的信息(通过pts或者tty)。
重启活动例外,其状态将显示为“系统启动”。
第三列显示用户的连接来源。
如果用户从远程计算机连接,则将看到主机名或者IP地址。
如果我们没有看到:0.0或者什么都没有,则表明该用户已通过本地终端连接。
重新启动活动除外,内核版本将显示为状态。
剩余的列显示登录时间和日志活动发生时的数据戳记。
括号中的数字告诉我们连接发生了多少小时和几分钟。
pts(伪终端)表示用户通过远程连接(例如SSH或者telnet)进行连接。
tty(电话打字机)表示用户通过直接连接连接到计算机或者本地终端。
1)限制行数
当有很多行要显示时,可以使用'-n'选项来限制要显示的行数。
在以下命令中,它将显示3行,从当前时间开始并向后显示。
$last -n 3 leni pts/0 10.0.76.162 Mon Dec 2 12:32 - 13:25 (00:53) pungki tty1 Mon Dec 2 09:31 still logged in reboot system boot 2.6.32-358.23.2 Mon Dec 2 09:20 - 13:25 (04:05)
2)隐藏主机名/IP地址
使用“ -R”选项可隐藏打印中的主机名或者IP地址。
$last -R leni pts/0 Mon Dec 2 12:32 - 13:25 (00:53) pungki tty1 Mon Dec 2 09:31 still logged in reboot system boot Mon Dec 2 09:20 - 13:25 (04:05)
3)在最后一列显示主机名
有时在最后一列中打印主机名或者IP地址很容易。
为此,我们可以使用“ -a”选项,如下所示:
$last -a leni pts/0 Mon Dec 2 12:32 - 13:25 (00:53) 10.0.76.162 pungki tty1 Mon Dec 2 09:31 still logged in :0.0 reboot system boot Mon Dec 2 09:20 - 13:25 (04:05) 2.6.32-358.23.2.el6.i686
4)打印完整的登录和注销时间和日期
默认情况下,上一条命令不会显示完整的日期和时间。
我们可以为此使用“ -F”选项。
这是一个示例:
$last -F leni pts/0 10.0.76.162 Mon Dec 2 12:32:24 2013 - Mon Dec 2013 13:25:24 2013 (00:53)
5)在特定日期之间搜索
我们可以使用-s(自)和-t(至)选项在特定日期之间搜索日志。
例如,以下命令将打印2019年2月1日至5月1日之间的日志。
$sudo last -F -s 2019-02-01 -t 2019-05-01
6)打印特定的用户名
如果要跟踪特定用户,则可以专门打印。
在最后一个命令中输入用户名。
$last leni leni tty1 Mon Dec 2 18-42 still logged in leni pts/0 Mon Dec 2 12:32 - 13:25 (00:53) 10.0.76.162
或者,如果我们想知道重新启动的时间,也可以显示它
$last reboot reboot system boot Mon Dec 2 09:20 - 16:55 (07:34) reboot system boot Sun Dec 1 04:26 - 04:27 (00:01) reboot system boot Wed Nov 27 20:27 - 01:24 (04:57) reboot system boot Tue Nov 26 21:06 - 06:13 (09:06)
7)打印特定的tty/pt
Last还可以打印有关特定tty/pt的信息。
只需在最后一个命令后面加上“ tty”名称或者pty名称即可。
输出示例:
$last tty1 pungki tty1 Mon Dec 2 09:31 still logged in pungki tty1 Mon Dec 2 04:26 - down (00:00) pungki tty1 Mon Dec 2 04:07 - down (00:00) pungki tty1 Sun Dec 1 18:55 - 04:07 (09:12)
$last pts/0 leni pts/0 10.0.76.162 Mon Dec 2 12:32 - 13:25 (00:53) pungki pts/0 :0.0 Wed Nov 27 20:28 - down (04:56)
如果我们在方括号中看到向下的值,则表示该用户从特定时间开始登录,直到系统重新引导或者关闭为止。
8)使用/var/log/wtmp以外的其他文件
默认情况下,最后一个命令将从“/var/log/wtmp”解析信息。
如果要从另一个文件解析最后一个命令,则可以使用“ -f”参数。
例如,我们可以在一定条件后旋转日志。
假设之前的文件名为“ /var/log/wtmp.1”。
然后,最后一个命令将如下所示:
$last -f /var/log/wtmp.1
9)显示运行级别更改
如果要显示运行级别更改,则有“ -x”选项。
这是一个示例输出:
pungki tty1 Mon Dec 2 19:21 still logged in runlevel (to lvl 3) 2.6.32-358.23.2 Mon Dec 2 19:20 - 19:29 (00:08) reboot system boot 2.6.32-358.23.2 Mon Dec 2 19:20 - 19:29 (00:08) shutdown system down 2.6.32-358.23.2 Mon Dec 2 18:56 - 19:20 (00:23) runlevel (to lvl 0) 2.6.32-358.23.2 Mon Dec 2 18:56 - 18:56 (00:00) leni tty1 Mon Dec 2 18:42 - down (00:00)
我们可以看到有两个运行级别条目。
具有“至lvl 3”条目的运行级别表示系统正在完全控制台模式下运行。
没有活动的X Window或者GUI。
同时,当系统关闭时,Linux运行级别0。
这就是为什么上次向我们显示“至lvl 0”条目的原因。
要显示上次关闭的日期和时间,请使用以下命令:
#last -x | grep shutdown | head -1
10)查看错误的登录名
当last命令记录成功登录时,lastb命令记录失败登录尝试。
我们必须具有root用户访问权限才能运行lastb命令。
Lastb将解析/var/log/btmp中的信息。
这是lastb命令的输出示例。
# lastb leni tty1 Mon Dec 2 22:12 - 22:12 (00:00) rahma tty1 Mon Dec 2 22:11 - 22:11 (00:00)
11)显示本地主机IP地址
使用'-d'选项(用于非本地登录),Linux不仅存储远程主机的主机名,还存储其IP号。
# last -d root pts/1 192.168.1.100 Fri Jun 22 01:58 still logged in root pts/0 192.168.1.100 Fri Jun 22 01:52 still logged in
12)旋转wtmp日志
由于“/var/log/wtmp”记录了每个登录活动,因此文件的大小可能会快速增长。
默认情况下,Linux每月都会轮换'/var/log/wtmp'。
旋转活动的详细信息放在/etc/logrotate.conf文件中。
这是我的“ /etc/logrotate.conf”文件的内容。
/var/log/wtmp { monthly create 0664 root umtp minsize 1M rotate 1 }
对于“/var/log/btmp”,这是轮换活动的默认配置
/var/log/btmp { missingok monthly create 0600 root umtp minsize 1M rotate 1 }
清除上一个命令历史记录
我们知道它会写入wtmp,因此,如果要删除上一个历史记录,则可以通过
#> /var/log/wtmp Or #> /var/log/lastlog