侧边栏壁纸
博主头像
BvBeJ的小站 博主等级

行动起来,活在当下

  • 累计撰写 37 篇文章
  • 累计创建 1 个标签
  • 累计收到 0 条评论

目 录CONTENT

文章目录

控制 journalctl 日志最大值的方法与步骤

BvBeJ
2025-12-02 / 0 评论 / 0 点赞 / 3 阅读 / 0 字

1. 检查当前 journald 配置与状态

# 查看当前 journald 配置文件
sudo cat /etc/systemd/journald.conf

# 查看当前日志占用磁盘空间
journalctl --disk-usage

# 检查持久化日志是否启用
ls -la /var/log/journal/

2. 编辑 journald 配置文件

# 备份原配置文件
sudo cp /etc/systemd/journald.conf /etc/systemd/journald.conf.backup

# 编辑配置文件
sudo nano /etc/systemd/journald.conf

在配置文件中修改或添加以下参数:

[Journal]
# 设置持久化存储(如未启用)
Storage=persistent

# 限制整个日志目录最大为 100M
SystemMaxUse=100M

# 限制单个日志文件最大大小
SystemMaxFileSize=10M

# 系统保留空间(可选,防止磁盘满)
SystemKeepFree=200M

# 最大保存时间(可选)
MaxRetentionSec=1month

# 启用压缩以节省空间
Compress=yes

3. 重启 journald 服务使配置生效

# 重新加载 systemd 配置
sudo systemctl daemon-reload

# 重启 journald 服务
sudo systemctl restart systemd-journald

# 检查服务状态
sudo systemctl status systemd-journald

4. 验证配置是否生效

# 查看 journald 运行时配置
sudo journalctl --update-catalog
sudo journalctl --header | grep -i "disk usage"

# 检查配置参数是否加载
sudo systemd-analyze cat-config systemd/journald.conf | grep -i maxuse

# 监控日志大小变化
watch -n 5 "journalctl --disk-usage"

5. 立即清理现有日志到 100M 以下

# 清理日志到指定大小
sudo journalctl --vacuum-size=100M

# 或按时间清理(保留最近7天)
sudo journalctl --vacuum-time=7days

# 验证清理结果
journalctl --disk-usage

6. 可选:创建持久化日志目录(如不存在)

# 创建 journal 目录并设置权限
sudo mkdir -p /var/log/journal
sudo chown root:systemd-journal /var/log/journal
sudo chmod 2755 /var/log/journal

# 强制 journald 切换到持久化模式
sudo systemctl restart systemd-journald

7. 设置定期日志清理任务(自动化)

# 编辑 crontab
sudo crontab -e

添加以下行(每周日凌晨3点清理):

0 3 * * 0 /usr/bin/journalctl --vacuum-size=100M

8. 监控与维护

# 监控日志大小的命令
journalctl --disk-usage

# 查看最大的日志文件
sudo ls -lh /var/log/journal/*/system*.journal

# 实时查看日志增长
sudo journalctl -f

注意事项

  1. 修改配置前务必备份原文件
  2. 重启 journald 服务不会丢失现有日志
  3. SystemMaxUse=100M 是软限制,实际可能略超
  4. 确保 /var/log 分区有足够空间
  5. 生产环境需根据日志产生速率调整参数

这些步骤完成后,systemd-journald 的日志总量将被限制在 100MB 以内,超出的旧日志会被自动清理。

0

评论区