last是Linux系统内置的跟踪工具,能够列出登入用户的相关信息,通过输入运行,不需独立安装,下面小编将针对last命令的用法给大家做个详细介绍,以便你有个了解。
last命令的功能是什么
last显示的是自/var/log/wtmp文件创建起所有登录(和登出)的用户。这个文件是二进制文件,它不能被文本编辑器浏览,比如vi、Joe或者其他软件。这是非常有用的,因为用户(或者root)不能像他们希望的那样修改这个文件。
last会给出所有已登录用户的用户名、tty、IP地址(如果用户是远程连接的话)、日期-时间和用户已经登录的时间。
如何运行last
你只要在控制台中输入last即可。这是个例子:
$last
lenipts/010.0.76.162MonDec212:32-13:25(00:53)
pungkitty1MonDec209:31stillloggedin
rebootsystemboot2.6.32-358.23.2MonDec209:20-13:25(04:05)
这里是如何阅读last信息:
第一列告诉谁是用户
第二列给出了用户如何连接的信息
pts/0(伪终端)意味着从诸如SSH或telnet的远程连接的用户
tty(teletypewriter)意味着直接连接到计算机或者本地连接的用户
除了重启活动,所有状态会在启动时显示
第三列显示用户来自哪里。如果用户来自于远程计算机,你会看到一个主机名或者IP地址。如果你看见:0.0或者什么都没有,这意味着用户通过本地终端连接。除了重启活动,内核版本会显示在状态中。
剩下的列显示日志活动发生在何时。括号中的数字告诉我们连接持续了多少小时和分钟。
日常操作中last的一些示例
限制显示行的数目
当你有很多行要显示时,你可以限制你想看到的行的数目。使用-n参数来这么做。
$last-n3
lenipts/010.0.76.162MonDec212:32-13:25(00:53)
pungkitty1MonDec209:31stillloggedin
rebootsystemboot2.6.32-358.23.2MonDec209:20-13:25(04:05)
-n参数会使last显示从当前时间到以后的3条记录。
不显示主机名
使用-R参数来这么做。这里是例子:
$last-R
lenipts/0MonDec212:32-13:25(00:53)
pungkitty1MonDec209:31stillloggedin
rebootsystembootMonDec209:20-13:25(04:05)
如你所见,现在在也没有关于主机或者IP地址的信息了。
最后一列显示主机名
要这么做,我们使用-a参数
$last-a
lenipts/0MonDec212:32-13:25(00:53)10.0.76.162
pungkitty1MonDec209:31stillloggedin:0.0
rebootsystembootMonDec209:20-13:25(04:05)2.6.32-358.23.2.el6.i686
现在主机信息诸如10.0.76.162会放在最后一列。
显示完整登入登出时间日期
对于此,你可以使用-F参数。这个是个示例:
$last-F
lenipts/010.0.76.162MonDec212:32:242013–MonDec201313:25:242013(00:53)
打印特定的用户名
如果你想要追踪特定的用户,你可以特别打印它。在last命令后面输入用户名。
$lastleni
lenitty1MonDec218-42stillloggedin
lenipts/0MonDec212:32-13:25(00:53)10.0.76.162
或者你想要知道reboot何时完成,你也可以这样显示它:
$lastreboot
rebootsystembootMonDec209:20-16:55(07:34)
rebootsystembootSunDec104:26-04:27(00:01)
rebootsystembootWedNov2720:27-01:24(04:57)
rebootsystembootTueNov2621:06-06:13(09:06)
打印特定/pts
last同样可以打印特定tty/pts的信息。只要在last命令后面输入tty名字或者pty名字。
这里有一些例子:
$lasttty1
pungkitty1MonDec209:31stillloggedin
pungkitty1MonDec204:26–down(00:00)
pungkitty1MonDec204:07–down(00:00)
pungkitty1SunDec118:55–04:07(09:12)
$lastpts/0
lenipts/010.0.76.162MonDec212:32-13:25(00:53)
pungkipts/0:0.0WedNov2720:28–down(04:56)
当你看到down的值-比如上面的第二行,它意味着用户从某个时间登录直到系统重启或关机。
使用另一个文件而不是/var/log/wtmp
默认上,last命令会从/var/log/wtmp中解析信息。如果你想要last命令从另外一个文件解析,你可以使用-f参数。比如,当日志切割后,让我们假设切割后,之前的文件名变为/var/log/wtmp.1。那么last命令会像这样。
$last-f/var/log/wtmp.1
显示运行级别改变
这里有个-x参数来显示运行级别。这里示例输出:
pungkitty1MonDec219:21stillloggedin
runlevel(tolvl3)2.6.32-358.23.2MonDec219:20–19:29(00:08)
rebootsystemboot2.6.32-358.23.2MonDec219:20–19:29(00:08)
shutdownsystemdown2.6.32-358.23.2MonDec218:56–19:20(00:23)
runlevel(tolvl0)2.6.32-358.23.2MonDec218:56–18:56(00:00)
lenitty1MonDec218:42–down(00:00)
你可以看到这里有两个运行级别。运行级别tolvl3的条目意味着系统运行在完整的控制台模式,而没在Xwindow或者GUI中。同时,当系统关机时,实际上是切换为运行级别0,这就是为什么last会显示tolvl0。
查看失败登录
last命令用了记录成功登录,而lastb命令记录失败的登录尝试。你必须拥有root权限才能运行lastb命令。这里有一个lastb命令的示例输出。lastb会解析/var/log/btmp的信息。
#lastb
lenitty1MonDec222:12–22:12(00:00)
rahmatty1MonDec222:11–22:11(00:00)
切割日志
因为/var/log/wtmp记录每次的登录活动,文件的大小可能会快速地增长。默认上,Linux会每月切割/var/log/wtmp/。切割的策略放在/etc/logrotate.conf文件中。这里是我/etc/logrotate.conf*文件的内容。
/var/log/wtmp{
monthly
create0664rootumtp
minsize1M
rotate1
}
对于/var/log/btmp,这里是默认的倒换活动配置
/var/log/btmp{
missingok
monthly
create0600rootumtp
minsize1M
rotate1
}
你可以根据需要自己修改。
总结
你可以结合这些参数来自定义last和lastb的输出。所有可以运行于last命令的参数都可运行在lastb命令上。更多细节,请通过在控制台输入manlast来访问。
上面就是Linux使用last命令的介绍了,通过last命令,你能够限制显示行的数目,显示用户登入登出的时间日期,查看失败登录等。