Linux journalctl命令详解(journalctl指令)(systemd服务默认日志管理工具)
文章目录
- Linux Journalctl命令详解
- 1. Journalctl简介
- 2. Journalctl基础使用
- 3. 过滤日志条目
- 4. 时间戳和日志轮转
- 5. 高级应用
- 6. `journalctl --help`指令文档
- 英文
- 中文
- 注意事项
- journal日志不会将程序输出的空行显示,日志会被压缩得满满当当。
- journal日志不会自动持久化,重启系统后,历史日志将被清除。可参考journal日志持久化配置。
- 总结
- 参考资料
Linux Journalctl命令详解
Linux提供了一个强大的日志系统,它可以跟踪和记录系统的各种活动。在这个系统中,journalctl是一个非常重要的工具,用于查询和操作由systemd进程管理的日志。
本文将深入探讨journalctl命令,介绍其基本使用、高级选项及示例等内容。
1. Journalctl简介
Systemd是Linux发行版的初始化系统,负责启动系统后的所有服务,并监视它们在系统运行期间的状态。Journal是Systemd的一部分,主要负责收集和存储日志数据。
journalctl是Journal的主要接口,提供丰富的功能来检索和显示日志条目。它能从磁盘上的二进制文件或者其他传输目标(如syslog)获取日志。
引用自Man page of journalctl:
journalctl may be used to query the contents of the systemd(1) journal as written by systemd-journald.service(8).
“journalctl可以用来查询由systemd-journald.service(8)写入的systemd(1)日志的内容。”
2. Journalctl基础使用
下面是一些基本的journalctl命令。
-
查看所有日志:
(分页输出)journalctl或者:
(不分页输出)journalctl --no-pager -
按时间倒序查看所有日志:
journalctl -r -
查看最新的10条日志:
journalctl -n 10 -
实时查看新添加的日志条目:
journalctl -f
3. 过滤日志条目
journalctl提供了多种方式来过滤和查找特定的日志条目。
以下是一些过滤日志的例子:
根据服务名称过滤:
journalctl -u nginx
根据进程ID过滤:
journalctl _PID=2001
根据优先级过滤(0-7,0表示最重要):
journalctl -p err -b
4. 时间戳和日志轮转
对于大型系统,日志文件可能会非常大。为了解决这个问题,journalctl提供了日志轮转和时间戳功能。
日志轮转是一个过程,其中旧的日志条目被删除以释放空间给新的日志条目。默认情况下,Journal将根据配置在/var/log/journal中保存日志文件,并在磁盘空间不足时执行日志轮转。
时间戳允许你查找特定时间范围内的日志条目。例如:
journalctl --since="2021-07-01" --until="2021-07-31 03:00"
5. 高级应用
尽管journalctl提供了丰富的功能,但在某些情况下,你可能需要更高级的工具或技术。例如,你可能需要将日志发送到远程服务器,或者在多个系统上集中处理日志。
对于这些需求,你可以考虑使用像Logstash、Graylog或Fluentd这样的日志聚合工具,它们可以与journalctl结合使用,提供更强大的功能。
6. journalctl --help指令文档
英文
journalctl [OPTIONS...] [MATCHES...]Query the journal.Options:--system Show the system journal--user Show the user journal for the current user-M --machine=CONTAINER Operate on local container-S --since=DATE Show entries not older than the specified date-U --until=DATE Show entries not newer than the specified date-c --cursor=CURSOR Show entries starting at the specified cursor--after-cursor=CURSOR Show entries after the specified cursor--show-cursor Print the cursor after all the entries--cursor-file=FILE Show entries after cursor in FILE and update FILE-b --boot[=ID] Show current boot or the specified boot--list-boots Show terse information about recorded boots-k --dmesg Show kernel message log from the current boot-u --unit=UNIT Show logs from the specified unit--user-unit=UNIT Show logs from the specified user unit-t --identifier=STRING Show entries with the specified syslog identifier-p --priority=RANGE Show entries with the specified priority--facility=FACILITY... Show entries with the specified facilities-g --grep=PATTERN Show entries with MESSAGE matching PATTERN--case-sensitive[=BOOL] Force case sensitive or insenstive matching-e --pager-end Immediately jump to the end in the pager-f --follow Follow the journal-n --lines[=INTEGER] Number of journal entries to show--no-tail Show all lines, even in follow mode-r --reverse Show the newest entries first-o --output=STRING Change journal output mode (short, short-precise,short-iso, short-iso-precise, short-full,short-monotonic, short-unix, verbose, export,json, json-pretty, json-sse, json-seq, cat,with-unit)--output-fields=LIST Select fields to print in verbose/export/json modes--utc Express time in Coordinated Universal Time (UTC)-x --catalog Add message explanations where available--no-full Ellipsize fields-a --all Show all fields, including long and unprintable-q --quiet Do not show info messages and privilege warning--no-pager Do not pipe output into a pager--no-hostname Suppress output of hostname field-m --merge Show entries from all available journals-D --directory=PATH Show journal files from directory--file=PATH Show journal file--root=ROOT Operate on files below a root directory--namespace=NAMESPACE Show journal data from specified namespace--interval=TIME Time interval for changing the FSS sealing key--verify-key=KEY Specify FSS verification key--force Override of the FSS key pair with --setup-keysCommands:-h --help Show this help text--version Show package version-N --fields List all field names currently used-F --field=FIELD List all values that a specified field takes--disk-usage Show total disk usage of all journal files--vacuum-size=BYTES Reduce disk usage below specified size--vacuum-files=INT Leave only the specified number of journal files--vacuum-time=TIME Remove journal files older than specified time--verify Verify journal file consistency--sync Synchronize unwritten journal messages to disk--relinquish-var Stop logging to disk, log to temporary file system--smart-relinquish-var Similar, but NOP if log directory is on root mount--flush Flush all journal data from /run into /var--rotate Request immediate rotation of the journal files--header Show journal header information--list-catalog Show all message IDs in the catalog--dump-catalog Show entries in the message catalog--update-catalog Update the message catalog database--setup-keys Generate a new FSS key pairSee the journalctl(1) man page for details.
中文
journalctl [选项...] [匹配项...]查询日志。选项:--system 显示系统日志--user 显示当前用户的用户日志-M --machine=CONTAINER 对本地容器进行操作-S --since=DATE 显示不早于指定日期的条目-U --until=DATE 显示不晚于指定日期的条目-c --cursor=CURSOR 从指定的游标开始显示条目--after-cursor=CURSOR 显示指定游标之后的条目--show-cursor 在所有条目后打印游标--cursor-file=FILE 显示文件中游标后的条目并更新文件-b --boot[=ID] 显示当前启动或指定的启动--list-boots 显示有关记录启动的简洁信息-k --dmesg 显示当前启动的内核消息日志-u --unit=UNIT 显示指定单元的日志--user-unit=UNIT 显示指定用户单元的日志-t --identifier=STRING 显示具有指定syslog标识符的条目-p --priority=RANGE 显示具有指定优先级的条目--facility=FACILITY... 显示具有指定设施的条目-g --grep=PATTERN 显示与PATTERN匹配的MESSAGE的条目--case-sensitive[=BOOL] 强制进行大小写敏感或不敏感的匹配-e --pager-end 在分页器中立即跳到末尾-f --follow 跟踪日志-n --lines[=INTEGER] 要显示的日志条目数量--no-tail 即使在跟踪模式下也显示所有行-r --reverse 先显示最新的条目-o --output=STRING 改变日志输出模式 (short, short-precise,short-iso, short-iso-precise, short-full,short-monotonic, short-unix, verbose, export,json, json-pretty, json-sse, json-seq, cat,with-unit)--output-fields=LIST 在verbose/export/json模式下选择要打印的字段--utc 以协调世界时(UTC)表示时间-x --catalog 在可用的地方添加消息解释--no-full 缩略字段-a --all 显示所有字段,包括长和不可打印的-q --quiet 不显示信息消息和权限警告--no-pager 不将输出管道输出到分页器--no-hostname 抑制主机名字段的输出-m --merge 显示所有可用日志的条目-D --directory=PATH 显示来自目录的日志文件--file=PATH 显示日志文件--root=ROOT 在根目录下操作文件--namespace=NAMESPACE 显示指定命名空间的日志数据--interval=TIME 更改FSS密封键的时间间隔--verify-key=KEY 指定FSS验证键--force 使用--setup-keys覆盖FSS密钥对
命令:-h --help 显示此帮助文本--version 显示包版本-N --fields 列出当前使用的所有字段名称-F --field=FIELD 列出指定字段采取的所有值--disk-usage 显示所有日志文件的总磁盘使用量--vacuum-size=BYTES 将磁盘使用量减少到指定大小以下--vacuum-files=INT 只保留指定数量的日志文件--vacuum-time=TIME 删除早于指定时间的日志文件--verify 验证日志文件的一致性--sync 将未写入的日志消息同步到磁盘--relinquish-var 停止记录到磁盘,记录到临时文件系统--smart-relinquish-var 类似,但如果日志目录在根挂载上,则无操作--flush 将所有日志数据从 /run 刷新到 /var--rotate 请求立即旋转日志文件--header 显示日志头信息--list-catalog 在目录中显示所有消息ID--dump-catalog 显示消息目录中的条目--update-catalog 更新消息目录数据库--setup-keys 生成新的FSS密钥对有关详细信息,请参阅 journalctl(1) 手册页。
注意事项
journal日志不会将程序输出的空行显示,日志会被压缩得满满当当。

journal日志不会自动持久化,重启系统后,历史日志将被清除。可参考journal日志持久化配置。
参考文章:systemd journalctl日志持久化配置(systemd日志)
总结
journalctl是一个强大而灵活的工具,可以帮助你管理和查询Linux系统的日志。通过学习和理解journalctl的各种功能和选项,你将能够更有效地管理你的系统,并在出现问题时快速找到原因。
参考资料
- Man page of journalctl
- Mastering systemd: Using journalctl for Troubleshooting
- An introduction to systemd’s journalctl utility
相关文章:
Linux journalctl命令详解(journalctl指令)(systemd服务默认日志管理工具)
文章目录 Linux Journalctl命令详解1. Journalctl简介2. Journalctl基础使用3. 过滤日志条目4. 时间戳和日志轮转5. 高级应用6. journalctl --help指令文档英文中文 注意事项journal日志不会将程序输出的空行显示,日志会被压缩得满满当当。journal日志不会自动持久化…...
学习内容--
C后台开发_c做后台_人面桃花相映红的博客-CSDN博客 C/C后端开发学习路线总结(附带实习学习经历分享)_c后端开发需要学什么_Linux后台开发狮的博客-CSDN博客 学到什么程度才可以面试大厂?c/c后台开发进阶指南 后端开发(超全&…...
Stable Diffusion:使用自己的数据集微调训练LoRA模型
Stable Diffusion:使用自己的数据集微调训练LoRA模型 前言前提条件相关介绍微调训练LoRA模型下载kohya_ss项目安装kohya_ss项目运行kohya_ss项目准备数据集生成关键词模型参数设置预训练模型设置文件夹设置训练参数设置 开始训练LoRA模型TensorBoard查看训练情况 测…...
软考高级系统架构设计师系列之:论文典型试题写作要点和写作素材总结系列文章一
软考高级系统架构设计师系列之:论文典型试题写作要点和写作素材总结系列文章一 一、论软件体系结构风格及其应用1.论文题目2.写作要点和写作素材二、论开放系统应用的互操作性技术1.论文题目2.写作要点和写作素材三、论多层分布结构系统的开发1.论文题目2.写作要点和写作素材四…...
06 mysql all查询 和 主键查询 和 非索引列查询
前言 本文主要调试一下 mysql 的如下两种查询语句 我们也来深入的看一下, 究竟如下两个普通的查询, mysql 做了什么事情 1. select * from user where id 991; 2. select * from user; 3. select * from user where name jerry991; 环境介绍 测试表 user schema 如下…...
黑马点评-项目集成git及redis实现短信验证码登录
目录 IDEA集成git 传统session存在的问题 redis方案 业务流程 选用的数据结构 整体访问流程 发送短信验证码 获取校验验证码 配置登录拦截器 拦截器注册配置类 拦截器 用户状态刷新问题 刷新问题解决方案 IDEA集成git 远程仓库采用码云,创建好仓库&…...
mac苹果电脑怎么运行Windows软件?怎么安装Win虚拟机?
近年来,苹果电脑的用户群体不断扩大,许多用户对于苹果电脑是否可以运行Windows软件产生了疑问。苹果电脑和Windows操作系统有着明显的区别,是否能够在苹果电脑上运行Windows软件。下面我们就来看苹果电脑可以运行Windows软件吗,苹…...
Jmeter对websocket进行测试
JMeterWebSocketSampler-1.0.2-SNAPSHOT.jar下载 公司使用websocket比较奇怪,需要带认证信息进行长连接,通过websocket插件是请求失败,如下图,后面通过代码实现随再打包jar包完成websocket测试 本地实现代码如下: pa…...
从2023年世界机器人大会发现机器人新趋势
机器人零部件为何成2023年世界机器人大会关注热门? 在原先,机器人的三大核心零部件是控制系统中的控制器、驱动系统中的伺服电机和机械系统中的精密减速器。如今,机器人的主体框架结构已经落实,更多机器人已经开始深入到各类场景中…...
Kafka单节点部署
🎈 作者:互联网-小啊宇 🎈 简介: CSDN 运维领域创作者、阿里云专家博主。目前从事 Kubernetes运维相关工作,擅长Linux系统运维、开源监控软件维护、Kubernetes容器技术、CI/CD持续集成、自动化运维、开源软件部署维护…...
生成式AI和大语言模型 Generative AI LLMs
在“使用大型语言模型(LLMs)的生成性AI”中,您将学习生成性AI的基本工作原理,以及如何在实际应用中部署它。 通过参加这门课程,您将学会: 深入了解生成性AI,描述基于LLM的典型生成性AI生命周期中的关键步骤ÿ…...
Obsidian 入门使用手册
文章目录 一、Obsidian 入门1.1 什么是 Obsidian1.2 安装 Obsidian 二、Obsidian 配置2.1 创建第一个笔记2.2 设置界面语言使用中文2.3 主题 三、小结 一、Obsidian 入门 1.1 什么是 Obsidian Obsidian 是一款基于 Markdown 语法编辑的笔记软件。与传统的 Markdown 软件不同的…...
GuLi商城-前端基础Vue指令-单向绑定双向绑定
什么是指令? 指令 (Directives) 是带有 v- 前缀的特殊特性。 指令特性的预期值是:单个 JavaScript 表达式。 指令的职责是,当表达式的值改变时,将其产生的连带影响,响应式地作用于DOM 例如我们在入门案例中的 v-on,代表绑定事…...
前端(十三)——JavaScript 闭包的奥秘与高级用法探索
😶博主:小猫娃来啦 😶文章核心:深入理解 JavaScript 中的闭包 文章目录 不理解闭包?这玩意很难?闭包的定义与原理闭包是什么创建一个闭包 闭包的应用场景闭包与作用域闭包与作用域之间的关系全局作用域、函…...
面试-快速学习计算机网络-UDP/TCP
1. OSI四层和七层映射 区别: 应用层,表示层,会话层合并为了应用层数据链路层和物理层合并为了网络接口层 2. TCP和UDP的区别? 总结: 1 . TCP 向上层提供面向连接的可靠服务 ,UDP 向上层提供无连接不可靠服…...
爱校对如何帮助企业和博客主提高在线可见性?
在数字化时代,内容质量已经成为增强在线曝光率的关键因素。企业和博客主经常面临挑战,如何制作高质量、无误的内容以吸引更多的在线用户。此文将详细分析“爱校对”如何帮助用户优化内容,从而提高在线可见性。 1.互联网内容的挑战 搜索引擎…...
MATLAB中xlsread函数用法
目录 语法 说明 示例 将工作表读取到数值矩阵 读取元胞的范围 读取列 请求数值、文本和原始数据 对工作表执行函数 请求自定义输出 局限性 xlsread函数的功能是读取Microsoft Excel 电子表格文件 语法 num xlsread(filename) num xlsread(filename,sheet) num x…...
Prisma.js:JavaScript中的基于代码的ORM
Prisma是一种流行的用于服务器端JavaScript和TypeScript的数据映射层(ORM)。它的核心目的是简化和自动化数据在存储和应用程序代码之间的传输方式。Prisma支持各种数据存储,并为数据持久化提供了一个强大而灵活的抽象层。通过这个基于代码的…...
解决问题:在cocos create中如何从b文件调用到a文件里用CC.resource.load动态加载的图集
目录 1.在a文件中定义一个公共的变量存储动态加载的图集 2.在a.js中添加一个静态方法,返回动态加载的图集 3.在b.js中使用a.js中定义的静态方法获取图集,并使用它 假设a文件中用CC.resource.load动态加载了一张图集,b文件需要使用这张图集&am…...
分布式 - 消息队列Kafka:Kafka 消费者消费位移的提交方式
文章目录 1. 自动提交消费位移2. 自动提交消费位移存在的问题?3. 手动提交消费位移1. 同步提交消费位移2. 异步提交消费位移3. 同步和异步组合提交消费位移4. 提交特定的消费位移5. 按分区提交消费位移 4. 消费者查找不到消费位移时怎么办?5. 如何从特定…...
web vue 项目 Docker化部署
Web 项目 Docker 化部署详细教程 目录 Web 项目 Docker 化部署概述Dockerfile 详解 构建阶段生产阶段 构建和运行 Docker 镜像 1. Web 项目 Docker 化部署概述 Docker 化部署的主要步骤分为以下几个阶段: 构建阶段(Build Stage):…...
生成xcframework
打包 XCFramework 的方法 XCFramework 是苹果推出的一种多平台二进制分发格式,可以包含多个架构和平台的代码。打包 XCFramework 通常用于分发库或框架。 使用 Xcode 命令行工具打包 通过 xcodebuild 命令可以打包 XCFramework。确保项目已经配置好需要支持的平台…...
Linux链表操作全解析
Linux C语言链表深度解析与实战技巧 一、链表基础概念与内核链表优势1.1 为什么使用链表?1.2 Linux 内核链表与用户态链表的区别 二、内核链表结构与宏解析常用宏/函数 三、内核链表的优点四、用户态链表示例五、双向循环链表在内核中的实现优势5.1 插入效率5.2 安全…...
R语言AI模型部署方案:精准离线运行详解
R语言AI模型部署方案:精准离线运行详解 一、项目概述 本文将构建一个完整的R语言AI部署解决方案,实现鸢尾花分类模型的训练、保存、离线部署和预测功能。核心特点: 100%离线运行能力自包含环境依赖生产级错误处理跨平台兼容性模型版本管理# 文件结构说明 Iris_AI_Deployme…...
边缘计算医疗风险自查APP开发方案
核心目标:在便携设备(智能手表/家用检测仪)部署轻量化疾病预测模型,实现低延迟、隐私安全的实时健康风险评估。 一、技术架构设计 #mermaid-svg-iuNaeeLK2YoFKfao {font-family:"trebuchet ms",verdana,arial,sans-serif;font-size:16px;fill:#333;}#mermaid-svg…...
Java如何权衡是使用无序的数组还是有序的数组
在 Java 中,选择有序数组还是无序数组取决于具体场景的性能需求与操作特点。以下是关键权衡因素及决策指南: ⚖️ 核心权衡维度 维度有序数组无序数组查询性能二分查找 O(log n) ✅线性扫描 O(n) ❌插入/删除需移位维护顺序 O(n) ❌直接操作尾部 O(1) ✅内存开销与无序数组相…...
渗透实战PortSwigger靶场-XSS Lab 14:大多数标签和属性被阻止
<script>标签被拦截 我们需要把全部可用的 tag 和 event 进行暴力破解 XSS cheat sheet: https://portswigger.net/web-security/cross-site-scripting/cheat-sheet 通过爆破发现body可以用 再把全部 events 放进去爆破 这些 event 全部可用 <body onres…...
Nuxt.js 中的路由配置详解
Nuxt.js 通过其内置的路由系统简化了应用的路由配置,使得开发者可以轻松地管理页面导航和 URL 结构。路由配置主要涉及页面组件的组织、动态路由的设置以及路由元信息的配置。 自动路由生成 Nuxt.js 会根据 pages 目录下的文件结构自动生成路由配置。每个文件都会对…...
CMake 从 GitHub 下载第三方库并使用
有时我们希望直接使用 GitHub 上的开源库,而不想手动下载、编译和安装。 可以利用 CMake 提供的 FetchContent 模块来实现自动下载、构建和链接第三方库。 FetchContent 命令官方文档✅ 示例代码 我们将以 fmt 这个流行的格式化库为例,演示如何: 使用 FetchContent 从 GitH…...
汇编常见指令
汇编常见指令 一、数据传送指令 指令功能示例说明MOV数据传送MOV EAX, 10将立即数 10 送入 EAXMOV [EBX], EAX将 EAX 值存入 EBX 指向的内存LEA加载有效地址LEA EAX, [EBX4]将 EBX4 的地址存入 EAX(不访问内存)XCHG交换数据XCHG EAX, EBX交换 EAX 和 EB…...
