Linux journalctl命令详解(journalctl指令)

news2024/9/22 8:34:07

文章目录

  • 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-keys

Commands:
  -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 pair

See 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

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/909115.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

Claude 2 国内镜像站

Claudeai是什么? Claude 2被称为ChatGPT最强劲的竞争对手,支持100K上下文对话,并且可以同时和5个文档进行对话,不过国内目前无法正常实用的,而claudeai是一个Claude 2 国内镜像站,并且免翻可用&#xff0…

当图像宽高为奇数时,如何计算 I420 格式的uv分量大小

背景 I420 中 yuv 数据存放在3个 planes 中。 网上一般说 I420 数据大小为 widthheight1.5 但是当 width 和 height 是奇数时,这个计算公式会有问题。 I420 中 u 和 v 的宽高分别为 y 的一半。 但是当不能整除时,是如何取整呢?向上还是向下&…

【C++】iota函数 + sort函数实现基于一个数组的多数组对应下标绑定排序

目录 一、iota函数 1. 函数解析 ​① 迭代器类型(补充) ② 头文件 ③ 参数 2. 函数用途与实例 二、sort函数 1、 函数解读 2、实现倒序排列 2.1 greater 与 less 模板参数 2.2 lambda表达式 三、下标绑定排序(zip) --- 833.字符串中的查找与替换 一、…

innodb事务实现

事务的特性 ACID 事务的类别 事务实现 redo redoLog buffer 的格式 undo 更新主键 purge group commit 因为上层的binlog和底层的redolog要保持一致,所以 事务控制语句 事务隔离级别 分布式事务 事务习惯

安装Ubuntu服务器、配置网络、并安装ssh进行连接

安装Ubuntu服务器、配置网络、并安装ssh进行连接 1、配置启动U盘2、配置网络3、安装ssh4、修改ssh配置文件5、重启电脑6、在远程使用ssh连接7、其他报错情况 1、配置启动U盘 详见: U盘安装Ubuntu系统详细教程 2、配置网络 详见:https://blog.csdn.net/davidhzq/a…

运放和三极管构成的恒流源电路

这是一个由运放和三极管构成的恒流源电路,RL为负载电阻,R1为采样电阻。 流过三极管集电极的电流 下面分析下这个电路的工作原理。首先我们可以看到这个运放引入了负反馈,所以它工作在线性区的,就有VINVPVN。 所以流过采样电阻R1的…

ATF BL1/BL2 ufs_read_blocks/ufs_write_blocks使用分析

ATF BL1/BL2 ufs_read_blocks/ufs_write_blocks使用分析 1 ATF的下载链接2 ATF BL1/BL2 ufs_read_blocks/ufs_write_blocks处理流程2.1 ATF BL1/BL2 ufs_read_blocks2.2 ATF BL1/BL2 ufs_write_blocks 3 UFS System Model4 ufs_read_blocks/ufs_write_blocks详细分析4.1 ufs_re…

layui框架学习(37:学习laytpl基本语法)

layui中的模板引擎模块laytpl属于轻量的 JavaScript 模板引擎,支持在页面中将指定的数据按指定的模板进行展示或处理,此处的模板是指一段包含html和脚本的文本(感觉类似asp.net core中的razor标记语言,在网页中嵌入基于服务器的代…

深入理解CyclicBarrier

CyclicBarrier翻译过来是回环栅栏,它可以实现让一组线程等待至某个状态之后再全部同步执行,这个状态叫屏障点。当所有等待线程都被释放后,CyclicBarrier可以重置再次使用。 CyclicBarrier的功能是由ReentrantLock和Condition共同实现的&…

java: 无法访问org.springframework.boot.SpringApplication 错误的类文件

项目场景: 提示:这里简述项目相关背景: java: 无法访问org.springframework.boot.SpringApplication 错误的类文件: /D:/Software/env-java/apache-maven-3.6.1/repository/org/springframework/boot/spring-boot/3.1.2/spring-boot-3.1.2.ja…

Docker基础操作入门

1 初识 Docker 1.1 简介 我们写的代码会接触到好几个环境:开发环境、测试环境以及生产环境 Docker概念 Docker 是一个开源的应用容器引擎,诞生于 2013 年初,基于 Go 语言实现, dotCloud 公司出品(后改名为Docker In…

钝感力:项目经理的隐形盾牌

钝感力的定义 钝感力的起源和意义 钝感力,或者说对外部刺激的不敏感性,起源于我们的生存本能。在古代,人们面对各种危险和挑战,需要有一定的抗压能力,才能在恶劣环境中生存下来。这种能力使得我们的祖先能够在面对猛兽…

R package org.Hs.eg.db to convert gene id

文章目录 install使用org.Hs.egENSEMBL将Ensembl id convert to gene idorg.Hs.egGENENAME 将Ensembl id convert to gene nameorg.Hs.egSYMBOL 将 gene symbol convert to gene id我现在有一些ensembl id 如何转为 gene name注意你会遇到一些record不全的情况,gtf文…

Certify The Web (IIS)

一、简介 Certify The Web 适用于 Windows的SSL 证书管理器用户界面,与所有 ACME v2 CA 兼容,为您的 IIS/Windows 服务器轻松地安装和自动更新来自 Letencrypt.org 和其他 ACME 证书授权机构的免费 SSL/TLS 证书,设置 https 从未如此简单。 …

T599聚合物电容器:在汽车应用中提供更长的使用寿命的解决方案

自从电子技术被引入汽车工业以来,汽车的技术含量一直在提升。诸多技术被应用在汽车上,使汽车的形象更接近于轮子上的超级计算机。更多传感器、更强大的计算能力和电力被装载到汽车上,汽车应用中的电子产品数量正在迅速增长。随着电动汽车和自…

jeecg如何创建报表并配置到菜单中

当使用jeecg创建单表之后,需要进行报表显示,并把报表配置到菜单中,该如何操作呢?下面进行详细讲解。这里以课程表这张表为例进行讲解。 一.表单创建完成,并配置好菜单栏。具体步骤略,如下图: 二.创建积木报表 1.左侧边栏展开低代码开发菜单,进入报表设计器栏目 2.进…

数据库中字段不给值或给““,默认存什么

准备 在mysql数据库中有一张stu表,下面是表的结构和数据和Student类 开始测试一(不给值) 情况一:添加一条数据,但是跳过math列 可以看到,表的int类型的默认为null. 查id2的这条数据,用student类去接 结果math是0,因为实体类的int元素不会是null,会默认给个0 用hashMap<st…

Vue教程(五):样式绑定——class和style

1、样式代码准备 样式提前准备 <style>.basic{width: 400px;height: 100px;border: 1px solid black;}.happy{border: 4px solid red;background-color: rgba(255, 255, 0, 0.644);background: linear-gradient(30deg, yellow, pink, orange, yellow);}.sad{border: 4px …

【Java 高阶】一文精通 Spring MVC - 基础概念(一)

&#x1f449;博主介绍&#xff1a; 博主从事应用安全和大数据领域&#xff0c;有8年研发经验&#xff0c;5年面试官经验&#xff0c;Java技术专家&#xff0c;WEB架构师&#xff0c;阿里云专家博主&#xff0c;华为云云享专家&#xff0c;51CTO 专家博主 ⛪️ 个人社区&#x…

微信小程序使用npm引入三方包详解

目录 1 前言2 微信小程序npm环境搭建2.1 创建package.json文件2.2 修改 project.config.json2.3 修改project.private.config.json配置2.4 构建 npm 包2.5 typescript 支持2.6 安装组件2.7 引入使用组件 1 前言 从小程序基础库版本 2.2.1 或以上、及开发者工具 1.02.1808300 或…