Rain Wiki · Linux

journalctl 与 systemd 日志

如何使用 journalctl 读取日志、检查日志占用的空间大小,并通过 --vacuum 选项安全地缩减日志大小。

Linux · Rain Wiki

journalctl 是读取 systemd 日志的命令,后者是被大多数现代 Linux 发行版使用的二进制日志存储。它可以按服务、引导、时间和优先级过滤消息,还可以报告和限制日志的磁盘使用量(在 /var/log/journal 中通常会增长到数吉字节)。

读取日志

'journalctl -u nginx.service' 显示单个单元的消息。'-b' 将输出限制为当前的引导,'-b -1' 限制为上一次引导。'-p err' 仅显示错误及更高级别的信息。'--since "1 hour ago"' 按时间进行限制,'-f' 则实时跟踪新消息。

磁盘使用情况

'journalctl --disk-usage' 打印活动日志文件和归档日志文件的总大小。

'--vacuum-size='、'--vacuum-time=' 和 '--vacuum-files=' 会删除归档的日志文件,直到满足限制条件;它们不会触及活动文件。

永久限制

限制是在 /etc/systemd/journald.conf 中设置的,例如 SystemMaxUse=500M,然后通过 'systemctl restart systemd-journald' 应用。如果没有进行设置,journald 默认会将日志保持在文件系统大小的 10% 以内,上限为 4 GB。

如何缩减日志

  1. 检查大小:journalctl --disk-usage
  2. 轮转活动文件以便对其进行清理:sudo journalctl --rotate
  3. 仅保留两周:sudo journalctl --vacuum-time=2weeks
  4. 或者最多保留 500 MB:sudo journalctl --vacuum-size=500M
  5. 要使其永久生效,请在 /etc/systemd/journald.conf 中设置 SystemMaxUse=500M 并运行:sudo systemctl restart systemd-journald

注意事项

  • 清理后的日志将不复存在;请保留足够的历史记录以便排查问题。
  • 在 journald 运行期间,请勿手动删除 /var/log/journal 中的文件。

说明: RainServer 为 Linux 服务器提供监控和安全清理功能;它会显示将要发生的变化并首先进行询问。

资料来源

最后更新: 2026-10-08

相关文章