Linux下journalctl命令使用实例

在Systemd出现之前,Linux系统及各应用的日志都是分别管理的,Systemd开始统一管理了所有Unit的启动日志,这样带来的好处就是可以只用一个 journalctl命令,查看所有内核和应用的日志,下面为大家详细讲解一下Linux下journalctl命令使用实例。

1) 如何使日志长期保存在系统中?

默认情况下,journal日志在大多数 Linux 发行版中是启用的,但它将日志数据存储在/run/log/journal/中,重启时会被删除。如果要使日志永久保存,请执行以下步骤,这些步骤将自动创建/var/log/journal/目录。

以 root 用户身份打开/etc/systemd/journald.conf文件并取消注释“Storage=auto”的行并将其更改为“Storage=persistent”。或者,您可以使用 sed 命令替换文件中的匹配字符串。

[root@server1 ~]# sed -i '/Storage/ c\Storage=persistent' /etc/systemd/journald.conf

重启 systemd-journald 服务:

[root@server1 ~]# systemctl restart systemd-journald

修改/var/log/journal权限:

[root@server1 ~]# chown -R root:systemd-journal /var/log/journal

下面可以从目录中看到日志了。

2) journalctl 常用的选项

在使用 Journalctl 工具之前,可以了解一些常用的选项:

  • -f : 实时显示最近的10条日志。
  • -e : 跳转到日志末尾以显示最新事件。
  • -r : 按时间倒序打印日志消息
  • -k : 只显示内核日志。
  • -u : 只显示指定systemd Unit的消息。
  • -b : 显示来自特定引导的消息,如果不包括特定引导会话,则显示当前引导消息。
  • –list-boots : 显示引导编号(相对于当前引导)、它的id以及与引导有关的第一个和最后一个消息的时间戳。
  • –utc : 以UTC时间表示。
  • -p, –priority= : 按消息优先级过滤输出。
  • -S, –since= : 根据开始时间过滤日志
  • -U, –until= : 根据结束时间过滤日志
  • –disk-usage : 显示所有日志文件的当前磁盘使用情况。

3)如何使用journalctl读取日志

3.a) 使用 journalctl 命令查看基本日志

当journalctl不带选项是,它会显示日志的完整内容,首先列出最旧的记录。

它在后端使用less命令来显示日志。

[root@server1 ~]# journalctl

3.b) 以相反的顺序显示日志

上面的输出按时间顺序显示日志。如果想要将最新的日志放在最前面,需要添加-r选项。

[root@server1 ~]# journalctl -r

3.c) 显示指定行数的日志

可以使用-n选项仅显示日志中指定行数的日志,如下所示:

[root@server1 ~]# journalctl -n 20

3.d) 实时查看日志

可以使用-f选项查看实时日志,如下所示。这在对某些问题进行故障排除时很有用。

[root@server1 ~]# journalctl -f

3.e) 只显示内核日志

过滤器可以根据你的需要使用。要仅显示内核日志,可以使用-k选项。这相当于字段匹配_TRANSPORT=kernel

[root@server1 ~]# journalctl -k
或者
[root@server1 ~]# journalctl _TRANSPORT=kernel

3.f) 过滤出系统引导日志

每次引导系统时,都会在日志中创建一个新的引导条目。要列出所有可用的引导,运行以下命令:

[root@server1 ~]# journalctl --list-boots
-1 5d845cc6c67746bdabd9b9a91c0d86ee Tue 2021-06-08 14:58:47 CST—Fri 2021-06-11 08:32:36 CST
0 5690a1c73db146bb8ceeaf3c8b1086f5 Wed 2021-06-16 15:40:42 CST—Wed 2021-06-16 15:41:20 CST

系统引导日志以一个数字作为前缀,该数字从0开始。’0′ 指的是当前启动。引导会话“-1”是上次引导的会话,依此类推。使用下面命令显示本次系统引导的日志记录:

[root@server1 ~]# journalctl -b 0

查看上一次系统引导的记录,如下操作:

[root@server1 ~]# journalctl -b -1

3.g) 基于时间间隔的过滤

可以根据时间间隔过滤日志。多个参数可以与时间过滤器一起使用,如下所示。要使用时间过滤器,请使用“-S 或 –since”和“-U 或 –until”命令行开关。

要过滤从昨天到目前的日志,请运行以下命令:

[root@server1 ~]# journalctl -S yesterday

仅过滤今天的日志,请运行以下命令:

[root@server1 ~]# journalctl -S today
或者
[root@server1 ~]# journalctl -S 00:00

如果仅过滤昨天的日志,不包括今天的,请运行以下命令:

[root@server1 ~]# journalctl -S yesterday --until 00:00

要过滤自 3 月 12 日以来的日志,请运行以下命令:

[root@server1 ~]# journalctl -S 2021-03-12

如要使用日期和时间过滤日志,请运行以下命令。

注意:日期和时间的使用格式:year-month-dayhour:minute:second

[root@server1 ~]# journalctl -S "2021-06-01 20:00:00" -U "2021-06-16"

要过滤过去一小时的消息,请使用以下命令:

[root@server1 ~]# journalctl -S -1h

3.h) 按优先级过滤

过滤可以应用于消息优先级,这在你想要过滤特定消息(如“Warn”或“Error”等)时非常有用。

下面列出了所有优先级:

PriorityCode
0emerg
1alert
2crit
3err
4warning
5notice
6info
7debug
[root@server1 ~]# journalctl -p 3 -b
或者
[root@server1 ~]# journalctl -p err -b

4) 基于字段的过滤

journal日志可以按特定字段过滤。要匹配的字段的语法是FIELD_NAME=MATCHED_VALUE,例如SYSTEMD_UNIT=httpd.service'。此外,可以在单个查询中指定多个匹配项,以更方便的方式过滤输出消息。

4.a) 按Unit过滤

要显示由指定服务生成的消息,请使用下面给出的命令。同样可以过滤任何服务消息。

[root@server1 ~]# journalctl -u sshd.service
或者
[root@server1 ~]# journalctl _SYSTEMD_UNIT=sshd.service

4.b) 按设备路径过滤

要过滤与特定设备相关的消息,请运行以下命令:

[root@server1 ~]# journalctl /dev/sda

5) 检查日志文件的磁盘占用情况

当你为journal日志启用持久存储时,它最多使用/var/log/journal所在文件系统容量的“10%”。

当您为日志日志启用持久存储时,它最多使用“/var/log/journal”所在文件系统的“10%”。

[root@server1 ~]# journalctl --disk-usage
Archived and active journals take up 16.0M in the file system.

文章来源网络,作者:管理,如若转载,请注明出处:https://shuyeidc.com/wp/221408.html<

(0)
管理的头像管理
上一篇2025-04-15 00:40
下一篇 2025-04-15 00:41

相关推荐

  • 云服务器和云虚拟主机怎么选?云服务器和虚拟主机区别

    云服务器适合业务增长快、需弹性扩展的场景,而云虚拟主机适合预算有限、技术门槛低的小型静态网站或测试环境,二者核心区别在于资源独享性与运维复杂度,核心差异解析:从底层架构到使用体验很多人容易混淆这两者,觉得它们都是“买空间建站”,它们的底层逻辑完全不同,云服务器(ECS)就像是你租了一整栋别墅,水电网络独立,你想……

    2026-06-29
    0
  • 赣州智慧旅游招聘是真的吗?赣州旅游人才招聘信息

    中级岗位(3-5年经验)月薪范围通常在6000-10000元,这类岗位需要独立负责项目模块,如独立运营一个抖音账号,或维护一个景区小程序的功能迭代,具备成功案例的候选人议价能力较强,高级岗位(5年以上经验)月薪范围通常在10000-20000元,部分核心管理岗可达更高,这类人才需要具备战略规划能力,如制定整个景……

    2026-06-29
    0
  • 赣州智能物联网车位锁如何管理?智能车位锁管理系统多少钱

    赣州智能物联网车位锁管理的核心在于通过云端平台实现远程控锁、状态实时监控及自动计费,彻底解决传统车位“被占难管”与“找位难”的痛点,在赣州这样的城市,随着机动车保有量的持续增长,老旧小区、商业综合体以及私人固定车位的资源矛盾日益凸显,传统的机械地锁或简易遥控锁,不仅操作繁琐,更无法实现数据化管理,引入智能物联网……

    2026-06-29
    0
  • 赣州智能消防栓好用吗,智能消防栓多少钱一个

    赣州智能消防栓通过物联网技术实现实时监测与远程报警,能显著降低火灾响应时间并提升城市消防安全管理水平,是目前智慧城市建设中不可或缺的基础设施,赣州智能消防栓的核心价值与应用场景传统消防栓往往存在“看不见、摸不着、用不了”的痛点,在赣州这样地形复杂、老城区与新城区并存的区域,传统设施的管理难度极大,智能消防栓的出……

    2026-06-29
    0
  • 云服务器和物理机到底有啥区别?

    云服务器本质上是虚拟化资源池中的弹性实例,而传统物理服务器是独占的硬件实体,前者胜在弹性与运维便捷,后者强在物理隔离与性能稳定,具体选择取决于业务对成本、扩展性及安全合规的权衡,很多人初次接触服务器时,容易把“云服务器”和“传统物理服务器”混为一谈,觉得它们都是用来跑网站或存数据的盒子,这两者的底层逻辑完全不同……

    2026-06-29
    0

发表回复

您的邮箱地址不会被公开。必填项已用 * 标注