Linux Last命令示例

时间:2020-03-05 15:28:33  来源:igfitidea点击:

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