在 Linux 系统中,/var/log/journal 目录存储的是 systemd-journald 的日志文件。如果这些日志文件过大,占用了过多磁盘空间,可以通过以下方法进行清理或管理。


方法 1:使用 journalctl 清理日志

journalctl 提供了一些选项来清理旧的日志文件。

1.1 查看当前日志占用空间

使用以下命令检查日志文件的总大小:

journalctl --disk-usage

该命令会显示 /var/log/journal 目录中的日志总占用空间。

1.2 按时间清理日志

如果希望删除 7 天前的日志,可以执行:

sudo journalctl --vacuum-time=7d

--vacuum-time 参数可以指定日志保留的时间范围,例如:

  • 1d(1天)
  • 2w(2周)
  • 1m(1个月)

1.3 按大小清理日志

如果想限制日志总大小,例如只保留 500MB,可以执行:

sudo journalctl --vacuum-size=500M

--vacuum-size 参数用于指定日志的最大存储空间,例如 100M1G 等。

1.4 结合时间和大小清理日志

可以同时使用 --vacuum-time--vacuum-size 进行清理:

sudo journalctl --vacuum-time=2w --vacuum-size=1G

方法 2:直接删除日志文件

如果需要立即释放空间,可以手动删除日志文件,但需要注意以下步骤:

2.1 停止 systemd-journald 服务(可选,但推荐)

sudo systemctl stop systemd-journald

2.2 删除日志文件

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

2.3 重新启动 systemd-journald 服务

sudo systemctl start systemd-journald

删除后,systemd-journald 会自动重新生成日志文件。

注意:直接删除日志文件可能会导致历史日志全部丢失,建议优先使用 journalctl 的清理方法。


方法 3:配置日志大小限制

为了避免日志再次占用过多磁盘空间,可以修改 systemd-journald 的配置文件,设置日志的最大存储空间。

3.1 编辑 journald 配置文件

sudo nano /etc/systemd/journald.conf

3.2 修改或添加以下参数:

[Journal]
SystemMaxUse=500M
RuntimeMaxUse=100M
  • SystemMaxUse:设置持久化日志的最大大小(存储在 /var/log/journal)。
  • RuntimeMaxUse:设置运行时日志的最大大小(存储在 /run/log/journal)。

3.3 保存并重启服务

sudo systemctl restart systemd-journald

检查效果

清理完成后,可以运行以下命令确认磁盘空间是否释放:

df -h
journalctl --disk-usage