> 软件包与系统管理 > journalctl

全面掌握 Journalctl

这是一个查看和管理 systemd 日志的核心工具。通过本指南,您可以学习 `journalctl` 的各种选项和用法。

主要选项

点击下面的选项,以直接创建 `journalctl` 命令并查看每个功能的说明。此工具帮助用户通过组合各种选项直观地理解命令的工作方式。

1. 基本查询

2. 过滤

3. 输出格式

生成的命令:

请尝试组合命令。

描述:

`journalctl` 执行命令。

通过组合这些选项,您可以与 AI 一起虚拟地执行命令。

日志存储与结构

`journald` 服务将系统日志以二进制格式存储在特定位置。存储方式取决于系统设置,这与日志保留期限直接相关。本节将解释日志的存储位置和方式。

🌀 临时存储

/run/log/journal/

此处的日志在系统重启时会被全部删除。主要用于短期问题解决或临时日志存储。如果系统未设置永久存储目录,则默认使用此处。

💾 永久存储

/var/log/journal/

在系统重启后希望保留日志时使用的路径。大多数生产服务器环境设置日志存储在此路径。如果此目录存在,`journald` 会自动保留日志。

配置文件与日志清理

为了防止日志占用过多磁盘空间,可以更改 `journald` 的设置或定期清理旧日志。本节将介绍相关的配置文件和清理命令。

配置文件: journald.conf

`journald` 的所有操作都可以在 `/etc/systemd/journald.conf` 文件中控制。以下是主要的设置选项。更改设置后需要使用 `sudo systemctl restart systemd-journald` 命令重新启动服务。

  • Storage=: 决定日志的存储方式。 (`persistent`, `volatile`, `auto`)
  • SystemMaxUse=: 指定日志可以使用的最大磁盘空间。 (例如: `1G`)
  • SystemKeepFree=: 指定始终需要保留的最小可用空间。 (例如: `200M`)
  • ForwardToSyslog=: 设置是否将日志转发到现有的 syslog 守护进程。

日志清理

可以手动清理日志以释放磁盘空间。被删除的日志无法恢复,请务必小心。

检查当前磁盘空间

journalctl --disk-usage

检查当前日志占用的磁盘空间。

删除旧日志 (按时间)

sudo journalctl --vacuum-time=2weeks

删除指定时间之前的所有日志。

限制日志大小 (按容量)

sudo journalctl --vacuum-size=500M

限制日志文件的总大小为指定容量,并删除旧日志。


相同类别命令