Linux - last 命令
前言
- 为啥写这篇?因为听 grep、sed 教程的时候有这个命令
- 栗子
- 加上工作中,运维给我排查问题的时候也用到了,感觉挺重要,先了解为敬!
命令作用
- 显示上次登录用户的列表
- 这个是在 Linux 下的 last 命令,跟 Mac 下有点不同
语法格式
last [options] [<username>...] [<tty>...]
参数说明
参数 | 含义 |
-<num> | 显示多少行 |
-a, --hostlast | last在最后一列中显示主机名 |
-d, --dns | 将IP号转换回主机名 |
-f, --file <file> | <读取特定文件而不是 /var/log/wtmp |
-F, --fulltimes | 打印完整的登录和注销时间和日期 |
-i, --ip | 以数字和点表示法显示ip编号 |
-n, --limit <number> | 限制要显示的行数 |
-R, --nohostname | 不显示hostname字段 |
-s, --since <time> | 显示指定时间以来的行 |
-t, --until <time> | 显示指定时间之前的行 |
-p, --present <time> | 显示在指定时间出现的人员 |
-w, --fullnames | 显示完整的用户名和域名 |
-x, --system | 显示系统关闭条目和运行级别更改 |
-h, --help | 帮助 |
-V, --version | 版本 |
查看列表说明
- 第一列:用户名
- 第二列:终端位置,pts/0 (伪终端) 意味着从 SSH 或 telnet 的远程连接的用,.tty (teletypewriter) 意味着直接连接到计算机或者本地连接的用户
- 第三列:登录的 IP 或终端名,用户通过本地终端连接则显示空,除了重启活动,内核版本会显示在状态中
- 第四列:登录开始时间
- 第五列:结束时间
- 第六列:持续时间,still logged in 表示仍然在线
显示5行,将 host 放在最后一列,打印完整的时间日期,并将 ip 转成主机名
last -5 -a -d -F
可以看到不加 -F,时间一列的区别
不显示 hostname
last -R
显示5行,显示完整的用户名和主机名,并只显示从 2021-06-04 17:33:00 开始到现在的信息
last -5 -w -s 202106041733300
显示5行,并只显示在 2021-06-06 00:00:00 之前的信息
last -5 -t 20210606000000
last 命令的数据源
执行 last 命令时,默认读取 /var/log/wtmp 文件
- 它是一个二进制文件,记录每个用户的登录系统次数和持续时间、注销、系统重启、停机等事件
- 它是永久记录这些信息的,系统运行时间增加,文件也会越来越大
- 因为它本身是一个二进制文件,所以无法直接 cat 查看,因此诞生了 last 命令来查看
还有另外一个命令,lastb
- 它是读取 /var/log/btmp 文件,记录登录系统失败的每个用户
- 当然,用 last -f 读取这个文件也是一样效果的
/var/run/utmp
- 它比较重要,记录着当前正在登录系统的每个用户
- 它的数据结构和 /var/log/wtmp 的数据结构一样
/var/log/lastlog
- 记录着每个用户最后登录系统的信息
- 它的数据结构和 /var/run/utmp 、 /var/log/wtmp 不一样
last -f /var/log/wtmp
last -f /var/log/wtmp
等价于只敲 last
last -f /var/log/btmp
last -f /var/log/btmp
- 和 lastb 查出来用户列表信息是一样的
- 本地用户直接 ssh 登阿里云
- 因为阿里云没有 polo 这个用户,所以连不上
- 然后系统就自动记录 polo 用户登录系统失败了
last -f /var/run/utmp
last -f /var/run/utmp
当前就一个 root 用户登录,加上一个系统信息
last -f /var/log/lastlog
last -f /var/log/lastlog
直接用 last -f 好像并不会显示信息,应该是因为读取的文件的数据结构不一致的原因
lastlog
lastlog
后面查了下,可以直接用 lastlog 查看 /var/log/lastlog
实际工作场景:因为某些用户的链接数太多导致无法再连接,此时需要断开用户已存在的终端链接
通过 last 找到用户的终端信息,然后用 fuser kill 掉
last
fuser -k /dev/pts/0
- 这里就踩了个坑,如果直接敲 pts/0 会报错, 因为路径不对,需要加上根路径 /dev/pts/0
- 杀掉当前终端链接文件后,我的 ssh 连接就自动退掉了
重新 ssh 连接服务器,查看之前的登录信息
fuser 命令详解文章
https://www.cnblogs.com/poloyy/p/14846179.html
通过 fuser 批量杀掉同一个用户的终端链接
fuser -k $(last -w | grep name | awk '{print "/dev/"$2}')
自己换掉 name
直接 ps -ef 去删掉
ps -ef|grep name | awk '{print $2}' | xargs kill -9
Linux - last 命令相关推荐
- linux常用命令(转载)
Linux常用命令大全(非常全!!!) 最近都在和Linux打交道,感觉还不错.我觉得Linux相比windows比较麻烦的就是很多东西都要用命令来控制,当然,这也是很多人喜欢linux的原因,比较短 ...
- linux if 命令判断条件总结
linux if命令 关于文件属性的判断式 -a 如果文件存在 -b 如果文件存在,且该文件是区域设备文件 -c 当file存在并且是字符设备文件时返回真 -d 当pathname存在并且是一个目录时 ...
- linux paste变量,Linux paste命令详解
Linux 命令大全 小白告诉你:Linux paste 命令用于合并文件的列. paste 指令会把每个文件以列对列的方式,一列列地加以合并. 语法 paste [-s][-d ][--help] ...
- linux unset命令,Linux unset命令
Linux unset命令 Linux unset命令用于删除变量或函数. unset为shell内建指令,可删除变量或函数. 语法unset [-fv][变量或函数名称] 参数:-f 仅删除函数. ...
- linux wc 命令简介
此wc命令不是让大家没有食欲的地方.而是linux下一个简单的小命令. NAME wc - word, line, character, and byte count SYNOPSIS wc [-cl ...
- linux mysql 命令 大全
linux mysql 命令 大全 1.linux下启动mysql的命令: mysqladmin start /ect/init.d/mysql start (前面为mysql的安装路径) 2.l ...
- Linux Find 命令精通指南
作者:Sheryl Calish Linux find 命令是所有 Linux 命令中最有用的一个,同时也是最混乱的一个.它很难,因为它的语法与其他 Linux 命令的标准语法不同.但是,它很强大,因 ...
- linux ps命令大全,Linux ps命令例子汇总
Linux ps命令主要用于查看系统运行的进程,确定进程运行的状态机是否占用过多资源等?下面学习啦小编通过实例来给大家详细介绍下Linux的ps命令,一起来了解下吧. Linux提供了当前进程的同时, ...
- linux用户在哪个文件夹,LINUX中用命令成功建立一个用户后信息会记录在哪个文件中...
LINUX中用命令成功建立一个用户后信息会记录在哪个文件中 发布时间:2007-07-28 10:14:57来源:红联作者:MPiops 增加用户帐号后 新建用户的命令十分简单,在命令行下使用 use ...
- Linux常见命令(二)
随着Linux应用的扩展许多同学开始接触Linux,根据学习Windwos的经验往往有一些茫然的感觉:不知从何处开始学起.虽然Linux桌面应用发展很快,但是命令在Linux中依然有很强的生命力.Li ...
最新文章
- whireshark过滤器学习与使用
- [Design Pattern] 抽象工厂模式
- Spring里Bean类的运行时小写之谜
- springboot 关闭懒加载_SpringBoot新手入门篇
- IAR 下根据官方库建立 STM32的工程
- Unix安装BerkeleyDB
- 通过负载均衡器+域名实现容灾切换-(8)基于DNS解析的GSLB在BS架构中应用实践(转)(2)...
- Linux IO原理和零拷贝机制
- 汇编语言编写Hello World
- 漫画:什么是字典序算法?
- arcgis重分类工具详解——结合遥感影像中植被剔除实例
- 第八章、Zigbee模块的性能及测试
- RASNet视频目标跟踪论文笔记
- Android之获取手机内部及sdcard存储空间
- 基于canvas实现波浪式绘制图片
- 标准日本语第二十三课
- 基于 abp vNext 和 .NET Core 开发博客项目 - 接入GitHub,用JWT保护你的API
- 库卡机器人是s7编程_青岛KUKA库卡机器人编程调试,维保,科普无限,崇尚科学...
- 中序表达式转其他顺序 - 表达式加括号法
- html5 meter样式,css – Chrome中的HTML5 Meter样式