欢迎您访问程序员文章站本站旨在为大家提供分享程序员计算机编程知识!
您现在的位置是: 首页  >  科技

Linux如何使用内置的跟踪工具last命令

程序员文章站 2022-05-30 14:13:58
last是Linux系统内置的跟踪工具,通过输入运行,不需独立安装,下面小编将针对last命令的用法给大家做个详细介绍,感兴趣的朋友可以看看... 15-02-14...

  last是linux系统内置的跟踪工具,能够列出登入用户的相关信息,通过输入运行,不需独立安装,下面小编将针对last命令的用法给大家做个详细介绍,以便你有个了解。

  last命令的功能是什么

  last显示的是自/var/log/wtmp文件创建起所有登录(和登出)的用户。这个文件是二进制文件,它不能被文本编辑器浏览,比如vi、joe或者其他软件。这是非常有用的,因为用户(或者root)不能像他们希望的那样修改这个文件。

  last会给出所有已登录用户的用户名、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)

  这里是如何阅读last信息:

  第一列告诉谁是用户

  第二列给出了用户如何连接的信息

  pts/0 (伪终端) 意味着从诸如ssh或telnet的远程连接的用户

  tty (teletypewriter) 意味着直接连接到计算机或者本地连接的用户

  除了重启活动,所有状态会在启动时显示

  第三列显示用户来自哪里。如果用户来自于远程计算机,你会看到一个主机名或者ip地址。如果你看见:0.0 或者什么都没有,这意味着用户通过本地终端连接。除了重启活动,内核版本会显示在状态中。

  剩下的列显示日志活动发生在何时。括号中的数字告诉我们连接持续了多少小时和分钟。

  日常操作中last的一些示例

  限制显示行的数目

  当你有很多行要显示时,你可以限制你想看到的行的数目。使用 -n 参数来这么做。

  $ 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)

  -n 参数会使last显示从当前时间到以后的3条记录。

  不显示主机名

  使用 -r 参数来这么做。这里是例子 :

  $ 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)

  如你所见,现在在也没有关于主机或者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

  现在主机信息诸如10.0.76.162 会放在最后一列。

  显示完整登入登出时间日期

  对于此,你可以使用 -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)

  打印特定的用户名

  如果你想要追踪特定的用户,你可以特别打印它。在last命令后面输入用户名。

  $ 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

  或者你想要知道reboot何时完成,你也可以这样显示它:

  $ 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)

  打印特定 / pts

  last同样可以打印特定tty/pts的信息。 只要在last命令后面输入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)

  当你看到 down 的值 - 比如上面的第二行,它意味着用户从某个时间登录直到系统重启或关机。

  使用另一个文件而不是 /var/log/wtmp

  默认上,last命令会从/var/log/wtmp中解析信息。如果你想要last命令从另外一个文件解析,你可以使用-f 参数。比如,当日志切割后,让我们假设切割后,之前的文件名变为/var/log/wtmp.1。那么last命令会像这样。

  $ last -f /var/log/wtmp.1

  显示运行级别改变

  这里有个-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)

  你可以看到这里有两个运行级别。运行级别to lvl 3的条目意味着系统运行在完整的控制台模式,而没在x window或者gui中。同时,当系统关机时,实际上是切换为运行级别0,这就是为什么last会显示to lvl 0。

  查看失败登录

  last命令用了记录成功登录,而 lastb 命令记录失败的登录尝试。你必须拥有root权限才能运行lastb命令。这里有一个lastb命令的示例输出。lastb会解析/var/log/btmp的信息。

  # lastb

  leni tty1 mon dec 2 22:12 – 22:12 (00:00)

  rahma tty1 mon dec 2 22:11 – 22:11 (00:00)

  切割日志

  因为/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

  }

  你可以根据需要自己修改。

  总结

  你可以结合这些参数来自定义last和lastb的输出。所有可以运行于last命令的参数都可运行在lastb命令上。更多细节,请通过在控制台输入man last来访问。

  上面就是linux使用last命令的介绍了,通过last命令,你能够限制显示行的数目,显示用户登入登出的时间日期,查看失败登录等。