温馨提示×

Debian日志怎么设置大小

小樊
35
2026-07-12 17:05:56
栏目: 智能运维

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


一、systemd-journald 日志大小设置(推荐)

Debian 8 及以后版本默认使用 systemd,日志由 systemd-journald 管理。

1️⃣ 配置文件位置

/etc/systemd/journald.conf

2️⃣ 常用大小限制参数

编辑配置:

sudo nano /etc/systemd/journald.conf

关键参数:

[Journal]
# 持久化日志总大小限制
SystemMaxUse=200M

# 单个日志文件大小
SystemMaxFileSize=50M

# 运行时日志(内存中)大小
RuntimeMaxUse=100M

# 保留时间(可选)
MaxRetentionSec=1week

说明:

  • SystemMaxUse:磁盘上 /var/log/journal 最大占用
  • RuntimeMaxUse:内存中 /run/log/journal 最大占用
  • 单位支持:K, M, G

3️⃣ 重启 journald 生效

sudo systemctl restart systemd-journald

4️⃣ 查看当前日志占用

journalctl --disk-usage

二、rsyslog 日志大小设置(传统方式)

如果你仍使用 rsyslog(常见于老系统或服务器):

1️⃣ 安装 rsyslog(如未安装)

sudo apt install rsyslog

2️⃣ 使用 logrotate 控制大小

rsyslog 本身不限制大小,而是由 logrotate 管理。

配置文件:

/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:日志超过 50M 就轮转
  • rotate 7:最多保留 7 个旧文件
  • compress:压缩旧日志

3️⃣ 手动测试 logrotate

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

三、只保留最近日志(清理旧日志)

journal 清理

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

删除旧 rsyslog 日志

sudo rm /var/log/syslog.*
sudo rm /var/log/messages.*

四、推荐配置(常见场景)

场景 建议
服务器 SystemMaxUse=200M
桌面 SystemMaxUse=100M
容器 RuntimeMaxUse=50M
长期审计 MaxRetentionSec=30d

五、快速判断你用的是哪种日志

ps -ef | grep -E 'journald|rsyslog'

或:

ls /var/log/journal
  • /var/log/journalsystemd-journald
  • /var/log/syslogrsyslog

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

  • Debian 版本(cat /etc/debian_version
  • 是服务器还是桌面
  • 是否使用 Docker / 嵌入式环境

我可以给你一套最合适的日志大小配置方案

0