当前位置:首页 > 文章列表 > 文章 > linux > journalctl 按启动会话筛选并导出日志

journalctl 按启动会话筛选并导出日志

来源:17golang原创 2026-09-29 03:49:04 0浏览 收藏

排查一次重启后的服务异常时,先别把整本 journal 全量导出。更稳的做法是先用 journalctl --list-boots --no-pager 找到目标启动,再用 -b 锁定会话,最后根据用途选择人读文本或结构化格式保存。

官方手册:https://www.freedesktop.org/software/systemd/man/255/journalctl.html

要点速览
  • --list-boots 给出相对编号、Boot ID 和首末时间,先定位再过滤。
  • -b -1 表示上一次启动;跨机器或长期归档时优先记录完整 Boot ID。
  • -o short-full 适合人工阅读,-o export 适合保留结构化日志记录。

先用 --list-boots 找到要调查的启动会话

启动编号是相对当前日志集合的定位方式,不是永久不变的主键。先执行下面的命令,重点看三列:相对启动编号、32 位 Boot ID,以及该次启动的第一条和最后一条日志时间。

# 关闭分页,便于把启动列表保存到工单或文件
journalctl --list-boots --no-pager

# 只看最近三次启动,避免列表过长
journalctl --list-boots -n 3 --no-pager

示例输出只用于说明字段关系,数字不代表本文作者机器的真实结果:

-2  4c2d...9a10  Mon 2026-09-28 08:10:03 CST—Mon 2026-09-28 18:41:22 CST
-1  7a91...d4e2  Tue 2026-09-29 07:52:10 CST—Tue 2026-09-29 09:06:18 CST
 0  b6f0...aa31  Tue 2026-09-29 09:06:29 CST—Tue 2026-09-29 10:15:02 CST
journalctl --list-boots 展示启动编号、Boot ID 与时间范围并选择目标启动的结构说明图
图1:启动会话定位说明图,展示 --list-boots 与 -b 的选择关系;这是原创静态说明图,不是截图。

用 -b 偏移或完整 Boot ID 筛选目标会话

确定目标后,-b 可以接相对偏移,也可以接完整 Boot ID。空的 -b 默认看当前启动,-b -1 看上一次启动,-b -2 再向前一轮。若调查材料要跨机器传递,建议把列表中的完整 ID 一并记录,避免“第 2 次启动”在另一台机器上产生歧义。

# 查看当前启动的内核与系统日志,-k 只保留内核消息
journalctl -b -k --no-pager

# 查看上一次启动,并按服务单元继续收窄
journalctl -b -1 -u ssh.service --no-pager

# 用完整 Boot ID 锁定会话;ID 必须替换为 --list-boots 得到的真实值
journalctl -b 7a91...d4e2 --no-pager

多个条件通常是同时成立的:启动会话、服务单元、优先级或时间范围会共同收窄结果。不要先用模糊的文本管道替代这些字段过滤,否则容易把相邻启动的同名服务混进来。

按用途选择日志导出格式

人工复盘与机器归档不是同一种输出需求。人读时应保留完整时间、时区和消息;交给后续工具或需要尽量保留字段时,可以使用 Journal Export Format。导出前加 --no-pager,避免 less 接管输出;跨时区协作时可加 --utc。

目标命令要点适合场景
人工阅读-o short-full工单、复盘、按时间对照
结构化保存-o export保留字段、交给解析工具
限制范围-b + -u/-p只看一次启动中的服务或级别
# 导出上一次启动的人读日志;重定向文件由当前 shell 创建
journalctl -b -1 -o short-full --no-pager --utc > boot-previous.log

# 导出同一会话的 Journal Export Format,保留结构化字段
journalctl -b -1 -o export --no-pager > boot-previous.export
journalctl 按启动会话过滤后分流到 short-full 人读文本和 export 结构化归档的说明图
图2:日志导出格式说明图,展示人读文本与结构化导出的选择;这是原创静态说明图,不是运行证据。

权限、持久化和旧启动缺失的排查边界

如果普通用户只能看到自己的日志,先确认是否有读取系统 journal 的权限;临时处理可以使用 sudo journalctl ...,长期则按发行版的日志访问组和最小权限策略配置。权限不足与“没有这次启动的日志”是两类问题,不要混在一起判断。

列表里没有更早的启动,可能是日志只保存在运行时目录、旧文件已轮转清理,或当前查询的目录不是目标机器。此时先检查 journald 的持久化配置和保留策略,再决定是否能恢复;单纯把 -b -2 改成别的数字不能创造已经被删除的记录。

常见问题:为什么 -b -1 找到的不是我以为的那次重启?

-1 是当前查询日志集合中的上一启动,不是按业务事件命名的“上周重启”。先看 --list-boots 的时间范围,再用完整 Boot ID 固定证据。

常见问题:导出的文件为什么看起来没有换行或字段很多?

export 面向结构化记录,不等同于普通文本日志。人工阅读请选择 short-full;需要解析字段时再保留 export,不要用文本格式猜字段边界。

常见问题:能否只导出某个时间段?

可以在启动条件上叠加 --since 和 --until。先锁定 -b,再加时间范围,才能避免同一时刻相邻启动的记录混入。

版本声明
本文转载于:17golang原创 如有侵犯,请联系study_golang@163.com删除
Go database/sql Rows 未关闭造成连接耗尽的诊断Go database/sql Rows 未关闭造成连接耗尽的诊断
上一篇
Go database/sql Rows 未关闭造成连接耗尽的诊断
米坛社区工具下载入口怎么找?AstroBox、表盘自定义工具与 Notify 区分说明
下一篇
米坛社区工具下载入口怎么找?AstroBox、表盘自定义工具与 Notify 区分说明
查看更多
最新文章
查看更多
课程推荐
  • 前端进阶之JavaScript设计模式
    前端进阶之JavaScript设计模式
    设计模式是开发人员在软件开发过程中面临一般问题时的解决方案,代表了最佳的实践。本课程的主打内容包括JS常见设计模式以及具体应用场景,打造一站式知识长龙服务,适合有JS基础的同学学习。
    543次学习
  • GO语言核心编程课程
    GO语言核心编程课程
    本课程采用真实案例,全面具体可落地,从理论到实践,一步一步将GO核心编程技术、编程思想、底层实现融会贯通,使学习者贴近时代脉搏,做IT互联网时代的弄潮儿。
    516次学习
  • 简单聊聊mysql8与网络通信
    简单聊聊mysql8与网络通信
    如有问题加微信:Le-studyg;在课程中,我们将首先介绍MySQL8的新特性,包括性能优化、安全增强、新数据类型等,帮助学生快速熟悉MySQL8的最新功能。接着,我们将深入解析MySQL的网络通信机制,包括协议、连接管理、数据传输等,让
    500次学习
  • JavaScript正则表达式基础与实战
    JavaScript正则表达式基础与实战
    在任何一门编程语言中,正则表达式,都是一项重要的知识,它提供了高效的字符串匹配与捕获机制,可以极大的简化程序设计。
    487次学习
  • 从零制作响应式网站—Grid布局
    从零制作响应式网站—Grid布局
    本系列教程将展示从零制作一个假想的网络科技公司官网,分为导航,轮播,关于我们,成功案例,服务流程,团队介绍,数据部分,公司动态,底部信息等内容区块。网站整体采用CSSGrid布局,支持响应式,有流畅过渡和展现动画。
    485次学习
查看更多
AI推荐
  • PubMedQA数据集详解:生物医学问答基准、功能与应用指南
    PubMedQA
    深入了解PubMedQA生物医学问答数据集,涵盖其核心功能、使用方法及在临床决策、药物研发等场景的应用,助力提升NLP模型性能。
    258次使用
  • H2O EvalGPT:开源LLM大模型评估与排行榜工具
    H2O EvalGPT
    H2O EvalGPT是H2O.ai推出的开源LLM评估平台,提供详细的大模型性能排行榜、行业特定基准测试及A/B测试功能,助您快速选择最适合项目的高性能大语言模型。
    302次使用
  • LMArena是什么?伯克利AI模型评估平台使用指南与功能解析
    LMArena
    LMArena是加州大学伯克利分校推出的AI模型匿名评测平台。通过盲测投票机制,用户可对比不同大模型回答并生成实时排行榜,助力开发者优化模型及用户选择最佳AI工具。
    281次使用
  • 斯坦福HELM:大语言模型Holistic Evaluation整体评估框架详解
    HELM
    深入了解斯坦福推出的HELM(Holistic Evaluation of Language Models)大模型评测体系。本文解析其核心功能、安装配置步骤及应用场景,涵盖准确性、公平性、鲁棒性等多维度指标,助力开发者全面优化语言模型性能。
    259次使用
  • MMBench详解:多模态大模型基准测试、功能特点与使用指南
    MMBench
    MMBench是由上海人工智能实验室等机构联合推出的多模态基准测试平台,提供细粒度能力评估、大规模数据集及VLMEvalKit工具。本文详细介绍其核心功能、安装使用方法及应用场景,助力开发者全面评估多模态模型性能。
    68次使用
微信登录更方便
  • 密码登录
  • 注册账号
登录即同意 用户协议 和 隐私政策
返回登录
  • 重置密码