温馨提示×

如何设置Debian日志大小

小樊
46
2026-08-23 04:14:03
栏目: 智能运维

在 Debian 系统中,日志大小的管理主要依赖于 systemd-journald(现代 Debian 默认)和 rsyslog(传统 syslog)。下面分别说明如何设置日志大小限制。


一、使用 systemd-journald 限制日志大小(推荐)

现代 Debian(8+)默认使用 systemd,日志由 journald 管理。

1. 编辑 journald 配置文件

sudo nano /etc/systemd/journald.conf

2. 修改或添加以下参数

[Journal]
# 限制持久化日志总大小
SystemMaxUse=200M
# 限制内存中日志大小
RuntimeMaxUse=100M
# 单个日志文件最大大小
SystemMaxFileSize=50M
# 保留时间(可选)
MaxRetentionSec=1week

常用参数说明:

参数 说明
SystemMaxUse 磁盘上持久日志最大占用
RuntimeMaxUse 内存(/run)中日志最大占用
SystemMaxFileSize 单个日志文件大小
MaxRetentionSec 日志保留时间

3. 重启 journald

sudo systemctl restart systemd-journald

4. 查看当前日志占用

journalctl --disk-usage

二、限制 rsyslog 日志大小(传统方式)

如果你仍在使用 rsyslog,可以通过 logrotate 控制日志大小。

1. 编辑 rsyslog 的 logrotate 配置

sudo nano /etc/logrotate.d/rsyslog

示例配置:

/var/log/syslog
/var/log/messages
{
    rotate 7
    size 50M
    missingok
    notifempty
    compress
    delaycompress
    postrotate
        /usr/lib/rsyslog/rsyslog-rotate 2>/dev/null || true
    endscript
}

说明:

  • size 50M:日志达到 50MB 就轮转
  • rotate 7:保留 7 个旧日志
  • compress:压缩旧日志

2. 测试配置

sudo logrotate -d /etc/logrotate.d/rsyslog

三、手动清理已有日志

清理 journal 日志

sudo journalctl --vacuum-size=100M
sudo journalctl --vacuum-time=7d

删除旧 rsyslog 日志

sudo rm -f /var/log/syslog.*

四、推荐做法总结

systemd 系统

  • 修改 /etc/systemd/journald.conf
  • 使用 journalctl --vacuum-*

传统系统 / rsyslog

  • 使用 logrotate 控制大小和轮转

如果你愿意,可以告诉我:

  • Debian 版本(cat /etc/debian_version
  • 是否使用 systemd
  • 想限制的是 系统日志 / 应用日志 / Docker 日志

我可以给你更精确的配置方案。

0