一、概述
在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用户的活动情况,通过简单的命令选项和格式化输出,可以快速发现系统的登录异常问题,并及时采取措施保障系统的安全。