掌握 journalctl 命令:综合指南

Mastering the journalctl Command: A Comprehensive Guide

系统日志是管理员和开发人员监控系统性能、解决问题和了解系统内发生事件的重要资源。在本文中,我们将学习在 Linux 系统上,journalctl 命令如何提供一种有效的方式来访问和管理这些日志。

journalctl 命令简介

journalctl 命令是一个实用程序,允许用户查看和交互 systemd 日志。这些日志包括来自各种来源的信息,例如内核、initrd、系统服务、应用程序和 systemd 本身。日志以二进制格式存储,可以使用 journalctl 有效地查询。

journalctl 命令的基本语法如下

journalctl [options…] [matches…]

使用 journalctl 查看和过滤日志

使用 journalctl 最直接的方法是不带任何选项。这将按时间顺序显示所有已记录的条目

$ journalctl

但是,输出可能会非常庞大,尤其是在运行时间较长的系统上。为了使导航更轻松,输出会自动使用 less 命令进行分页。使用 Enter 键逐行滚动,或使用空格键逐页滚动。要退出日志输出,请按键盘上的 q 键。

要以反向时间顺序查看日志(即,最新条目在前),请使用 -r 选项

$ journalctl -r

您可以使用 -n 选项后跟要显示的行数来限制显示的日志条目数。例如,要查看最后 15 个条目

$ journalctl -n 15

要仅查看与内核相关的消息,请使用 -k 选项

$ journalctl -k

日志也可以按优先级过滤。日志级别范围从 0(紧急)到 7(调试),数字越低表示优先级越高。使用 -p 选项查看特定级别及以上的日志。例如,要查看错误、严重、警报和紧急日志

$ journalctl -p 3

要查看来自特定系统服务的日志,请使用 -u 标志后跟服务名称。例如,要查看 Apache 服务的日志

$ journalctl -u apache2.service

使用启动日志

journalctl 命令允许用户查看来自特定启动会话的日志。每次启动都单独记录,可以轻松隔离与特定启动相关的日志。要查看以前所有启动的日志列表,请使用 --list-boots 选项

$ journalctl --list-boots

要查看上次系统启动的日志,请将 -b 选项与数字 -1 一起使用。指定不同的数字以查看较旧启动的日志

$ journalctl -b -1

高级用法

您可以使用 --since--until 选项查看特定时间段的日志。例如,要查看昨天的日志

$ journalctl --since yesterday

这些选项可以一起使用以指定特定的时间范围。使用 YYYY-MM-DD HH:MM:SS 日期格式以获得精度

$ journalctl --since 2023-04-05 08:00:00 --until 2023-04-05 12:00:00

要以 JSON 格式获取日志输出,这对于在某些程序中解析很有用,请将 -o 选项与 jsonjson-pretty 一起使用

$ journalctl -o json

或者

$ journalctl -o json-pretty

对于实时监控正在生成的日志,请使用 -f 选项,其功能类似于 tail 命令的 -f 选项

$ journalctl -f

您还可以使用 --disk-usage 选项检查日志文件正在消耗多少磁盘空间

$ journalctl --disk-usage

其他提示和选项

journalctl 命令提供了几个额外的选项来自定义日志显示和导航

  • 使用 --no-page 选项在终端中显示日志而不进行分页(即,不使用 less)

$ journalctl --no-page
  • 要显示所有日志字段,包括不可打印的字段,请使用 --all 选项

$ journalctl --all
  • 默认情况下,journalctl 命令以本地时区显示日志。但是,您可以使用 --utc 选项指定以协调世界时 (UTC) 显示日志

$ journalctl --utc
  • 如果您想抑制不相关的消息,例如警告或信息消息,请使用 -q--quiet 选项

$ journalctl --quiet
  • 要显示列出所有选项及其用法的帮助消息,请使用 --help 选项

$ journalctl --help

您还可以使用 --version 选项检查 journalctl 命令的版本

$ journalctl --version

结论

journalctl 命令是管理和分析 Linux 系统日志的重要工具。通过其各种选项和过滤器,管理员和用户可以轻松导航、监控和排除系统事件故障。掌握 journalctl 命令是那些寻求优化系统性能和高效解决问题的关键技能。

无论您是经验丰富的系统管理员还是 Linux 爱好者,了解 journalctl 命令的强大功能都将增强您处理日志并保持系统平稳运行的能力。

由于我们已经介绍了 journalctl 命令的关键概念和用法,我们想用一些补充说明来结束这份综合指南

  • 务必记住,日志是诊断和调试系统问题的重要信息来源。适当的日志管理实践(例如日志轮换和归档)可以帮助防止日志占用过多的磁盘空间,同时确保历史数据得到保留。

  • journalctl 命令作为 systemd 套件的一部分,通常在现代 Linux 发行版上可用,这些发行版使用 systemd 作为 init 系统。但是,某些 Linux 发行版可能使用替代的 init 系统和日志记录机制,因此务必了解您的系统上可用的特定工具。

  • 除了使用 journalctl 命令外,您还可以利用图形用户界面 (GUI) 和第三方日志管理工具来可视化和分析日志。这些工具通常提供高级功能,例如日志聚合、过滤、搜索和警报。

  • 日志可能包含敏感信息,因此对日志的访问应仅限于授权人员。在共享日志以进行故障排除或支持时,请确保任何机密或私人信息已被编辑或匿名化。

  • 持续监控日志是系统维护和安全主动方法的重要组成部分。自动化监控和警报工具可以帮助实时检测异常、安全漏洞和性能问题,从而实现及时响应和缓解。

凭借本指南中提供的知识,您现在有能力有效地使用 journalctl 命令,并充分利用其功能。祝您日志记录愉快,愿您的系统始终平稳运行!

George Whittaker 是 Linux Journal 的编辑,也是一位定期撰稿人。George 撰写技术文章已有二十年,并且是 Linux 用户超过 15 年。在空闲时间,他喜欢编程、阅读和游戏。

加载 Disqus 评论