Journal 命令

开启持久化日志记录

创建持久化目录

sudo mkdir -p /var/log/journal
sudo systemd-tmpfiles --create --prefix /var/log/journal

配置 journald

编辑配置文件:

sudo nvim /etc/systemd/journald.conf

修改或者添加以下内容。

[Journal]
Storage=persistent          # 开启持久化
Compress=yes                # 启用日志压缩,节省空间
SystemMaxUse=2G             # 系统日志最多占用 2GB(可根据需要调整)
SystemKeepFree=50M          # 保留至少 50MB 空闲空间
SystemMaxFileSize=200M      # 单个日志文件最大 200MB
SystemMaxFiles=50           # 保留最多 50 个文件
MaxRetentionSec=30d         # 最多保留 30 天的日志

解释:

  • SystemKeepFree 表示如果没有达到 SystemMaxUse 的使用量,也会为系统保留的空间大小。
  • Compress=yes可节省 50-70%的空间。
  • 如果希望更加长期保留日志文件,可以适当增大SystemMaxUse或者MaxRetentionSec

重启 journald

sudo systemctl restart systemd-journald

验证

journalctl --disk-usage        # 查看日志占用空间
journalctl --list-boots         # 查看已记录的启动信息
ls -lh /var/log/journal

配置完成后,即可开启持久化日志,并且控制日志不会无限占满系统盘。

关闭持久化日志

关闭journalctl持久化日志,也就是让日志只存内容(关机后清空),可以按照以下步骤操作:

修改配置文件

编辑 journald 配置:

sudo nvim /etc/systemd/journald.conf

找到:

Storage=persistent

改为:

Storage=volatile

说明:

  • volatile,只存在内存(/run/log/journal),关机后清空。
  • auto,如果/var/log/journal存在则持久化,否则只存在内容。
  • persistent,永久保存到/var/log/journal

删除已有持久化日志

sudo rm -rf /var/log/journal/*

重启 journald

sudo systemctl restart systemd-journald

验证

ls -l /var/log/journal

如果目录为空或者不存在日志文件,就说明已经回到内存存储模式。