You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何在Linux中仅提取last命令显示的历史登录记录日期

提取last命令登录记录日期字段的可行方案

last默认输出的登录记录结构固定,直接用系统自带的文本处理工具就能提取日期字段,不需要依赖额外工具,以下是可直接用的实现:

  • 快速提取默认格式下的日期
    适配默认英文locale的last输出,自动过滤末尾的wtmp日志统计行,直接提取周、月、日字段:
    last | awk '!/^wtmp/ && NF {print $4, $5, $6}'
    
    如果需要同时带上登录时间点,调整打印字段为$4, $5, $6, $7即可。
  • 脚本兼容方案(规避列错位/语言环境问题)
    不同发行版、不同中文/非英文locale下last的列位置可能偏移,推荐用last内置的iso时间格式参数,输出标准结构化时间后再提取,拿到YYYY-MM-DD格式的标准日期,稳定性更高,适合写进生产脚本:
    last --time-format=iso | awk '!/^wtmp/ && NF {print substr($4, 1, 10)}'
    
  • 提取所有出现过登录行为的去重日期
    如果不需要逐条对应记录,只想统计存在登录行为的日期,追加去重排序逻辑即可:
    last --time-format=iso | awk '!/^wtmp/ && NF {print substr($4, 1, 10)}' | sort -u
    

注意:last的数据源是/var/log/wtmp二进制日志,如果该日志被轮转、手动清空过,你只能拿到当前日志留存周期内的登录记录,无法提取已经被清理的历史登录数据。

内容的提问来源于stack exchange,提问作者KostasA

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.08.30 13:42:22