您的位置:

实时监控Linux用户活动的命令last

一、概述

在Linux运维过程中,我们经常需要监控系统的资源使用情况以及用户活动情况,其中用户活动情况是非常重要的一部分。Linux系统提供了last命令来实时监控Linux用户的活动情况。last命令可以列出所有成功登录的用户,显示用户名字、登录时间、退出时间、登录IP等信息。

二、last命令的语法

下面是last命令的基本语法:

last [选项] [用户名] [终端名] [tty设备名] [主机名] [-f 文件名] [-n 显示行数] [--time-format 格式] [--until 时间] [--since 时间]

其中,常用的选项包括:

  • -n:指定最近显示的行数
  • --since:指定显示从某个时间开始的记录
  • --until:指定显示到某个时间截止的记录
  • --time-format:指定时间格式,例如%s、%F %T等

三、last命令的示例

1. 显示所有用户的登录记录

$ last
root     pts/0        192.168.1.100    Wed Sep  8 10:50   still logged in
user     pts/1        192.168.1.100    Wed Sep  8 09:08 - 09:18  (00:10)
root     tty1                          Wed Sep  8 07:51   still logged in
reboot   system boot  4.15.0-151-gene Wed Sep  8 07:44 - 11:56  (04:12)

上面的结果显示了所有用户的登录和登出记录,其中每条记录包括用户名、终端名、远程主机IP、登录和登出时间等信息。

2. 显示指定用户的登录记录

$ last myuser
myuser   pts/2        192.168.1.100    Tue Sep  7 16:45 - 16:51  (00:06)
myuser   pts/2        192.168.1.100    Tue Sep  7 16:29 - 16:45  (00:16)
myuser   pts/1        192.168.1.100    Tue Sep  7 14:49 - 14:58  (00:08)
myuser   pts/2        192.168.1.100    Mon Sep  6 22:45 - 22:46  (00:01)

上面的命令显示了用户myuser的登录和登出记录。

3. 显示指定时间段内的登录记录

$ last --since "2021-09-06 00:00:00" --until "2021-09-07 00:00:00"
root     tty1                          Tue Sep  7 07:30 - 07:31  (00:00)
reboot   system boot  4.15.0-151-gene Tue Sep  7 07:28 - 15:06  (07:37)

上面的命令显示了从2021年9月6日零点到2021年9月7日零点期间的登录和登出记录。

四、注意事项

1. 仅显示活动期间的记录

last命令会记录所有用户的登录和登出记录,但默认情况下会显示所有成功登录过的用户,而不区分活动期间和非活动期间。如果只需要查看用户的活动期间,可以使用下面的命令:

$ last -F

2. 依据IP显示用户的登录记录

如果需要按照IP地址显示用户的登录记录,可以使用下面的命令:

$ last -a -i

3. 检查登录异常

通过last命令可以及时发现系统登录异常的情况,可以方便的判断用户是否异常登录,以及是否存在未授权的IP登录等问题。

4. 文件格式化输出

last命令还可以将输出结果格式化保存到指定文件中,例如:

$ last -F > last.log

这样就可以将所有用户的登录记录保存到文件last.log中。

五、总结

last命令可以方便的实时监控Linux用户的活动情况,通过简单的命令选项和格式化输出,可以快速发现系统的登录异常问题,并及时采取措施保障系统的安全。