当前位置: 首页 > news >正文

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的各种功能和选项,你将能够更有效地管理你的系统,并在出现问题时快速找到原因。

参考资料

  1. Man page of journalctl
  2. Mastering systemd: Using journalctl for Troubleshooting
  3. 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生命周期中的关键步骤&#xff…...

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. 如何从特定…...

如何利用 ChatGPT 进行自动数据清理和预处理

推荐:使用 NSDT场景编辑器助你快速搭建可二次编辑的3D应用场景 ChatGPT 已经成为一把可用于多种应用的瑞士军刀,并且有大量的空间将 ChatGPT 集成到数据科学工作流程中。 如果您曾经在真实数据集上训练过机器学习模型,您就会知道数据清理和预…...

PHP“牵手”淘宝商品评论数据采集方法,淘宝API接口申请指南

淘宝天猫商品评论数据接口 API 是开放平台提供的一种 API 接口,它可以帮助开发者获取商品的详细信息,包括商品的标题、描述、图片等信息。在电商平台的开发中,详情接口API是非常常用的 API,因此本文将详细介绍详情接口 API 的使用…...

你更喜欢哪一个:VueJS 还是 ReactJS?

观点列表: 1、如果你想在 HTML 中使用 JS,请使用 Vue; 如果你想在 JS 中使用 HTML,请使用 React。 当然,如果您希望在 JS 中使用 HTML,请将 Vue 与 JSX 结合使用。 2、Svelte:我喜欢它&#…...

PyTorch学习笔记(十六)——利用GPU训练

一、方式一 网络模型、损失函数、数据(包括输入、标注) 找到以上三种变量,调用它们的.cuda(),再返回即可 if torch.cuda.is_available():mynn mynn.cuda() if torch.cuda.is_available():loss_function loss_function.cuda(…...

【实战】十一、看板页面及任务组页面开发(三) —— React17+React Hook+TS4 最佳实践,仿 Jira 企业级项目(二十五)

文章目录 一、项目起航:项目初始化与配置二、React 与 Hook 应用:实现项目列表三、TS 应用:JS神助攻 - 强类型四、JWT、用户认证与异步请求五、CSS 其实很简单 - 用 CSS-in-JS 添加样式六、用户体验优化 - 加载中和错误状态处理七、Hook&…...

金额千位符自定义指令

自定义指令文件 moneyFormat.js /*** v-money 金额千分位转换*/export default {inserted: inputFormatter({// 格式化函数formatter(num, util) {if(num null || num || num undefined || typeof(num) undefined){return }if(util 万元 || util 万){return formatMone…...

请不要用 JSON 作为配置文件,使用JSON做配置文件的缺点

我最近关注到有的项目使用JSON作为配置文件。我觉得这不是个好主意。 这不是JSON的设计目的,因此也不是它擅长的。JSON旨在成为一种“轻量级数据交换格式”,并声称它“易于人类读写”和“易于机器解析和生成”。 作为一种数据交换格式,JSON是…...

Hadabot:从网络浏览器操作 ROS2 远程控制器

一、说明 Hadabot Hadabot是一个学习ROS2和机器人技术的机器人套件。使用 Hadabot,您将能够以最小的挫败感和恐吓来构建和编程物理 ROS2 机器人。Hadabot套件目前正在开发中。它将仅针对ROS2功能,并强调基于Web的用户界面。 随着开发的进展&a…...

Kotlin 协程

Kotlin 协程(Coroutines)是一种轻量级的并发编程解决方案,旨在简化异步操作和多线程编程。它提供了一种顺序和非阻塞的方式来处理并发任务,使得代码可以更加简洁和易于理解。Kotlin 协程通过提供一套高级 API,使并发代…...

maven 从官网下载指定版本

1. 进入官网下载页面 Maven – Download Apache Maven 点击下图所示链接 2. 进入文件页,选择需要的版本 3. 选binaries 4. 选文件,下载即可...

如何网站推广宣传/seo还能赚钱吗

const关键字: 用const修饰的定义对象称为常对象; 用const修饰的声明成员函数称为常成员函数; 用const修饰的声明数据成员称为常数据成员。 变量或对象被 const修饰后其值不能被更新。因此被const修饰的变量或对象必须要进行初始化。 常对象说…...

wordpress 文章 总数/临沂seo网站管理

今天研究了一下CONSTRAINT的检验,分为两种:immediate--指在执行DML语句时就进行验证,defer--指在执行commit后才进行验证.默认条件下,会话的constraint验证类型为immediate,但是我们可以将它改为defered;SQL>alter …...

做网站论文/企业培训十大热门课程

网格搜索算法和K折交叉验证法是机器学习入门的时候遇到的重要的概念。 网格搜索算法是一种通过遍历给定的参数组合来优化模型表现的方法。 以决策树为例,当我们确定了要使用决策树算法的时候,为了能够更好地拟合和预测,我们需要调整它的参数…...

青岛网站建设优化质量可靠/查域名备案信息查询

Java语言8种基本数据类型能够适应对象中属性的封装,但是这些基本数据不具备对象的特性,不能满足一些比较特殊的数据转换,比如double类型转换成int类型。并且,Java中很多类的方法参数类型为为Object类型,其接收的参数也…...

市场监督局网站电子签名怎么做/windows优化大师下载安装

什么是mysqlsandbox 一群海豚在属于自己的海滩上自由的玩耍,尽管只是一个方盒的大小,但是设备一样的齐全,同样可以玩的很开心,这就是我今天要说的——MySQL Sandbox2.0,3.0也将要推出。 MySQL Sandbox是一个非常简单快…...

大连网页制作wordpress/有什么可以做推广的软件

本文讲的是漫谈云计算环境下的传统安全产品虚拟化,传统的IT建设,用户需要自己采购硬件设备、操作系统,购买或开发自己的业务系统,并投入大量的维护成本。考虑到业务的扩展和瞬时的使用高峰,每个系统的计算、存储能力必须有一定的冗…...