温馨提示×

ubuntu syslog怎么限定大小

小樊
45
2026-09-14 06:19:10
栏目: 智能运维

在 Ubuntu 里,syslog 本身的大小限制通常不是由 syslog 直接控制,而是由 日志轮转(logrotate) 或你使用的 syslog 实现(rsyslog / syslog-ng / journald) 来管理的。下面按常见情况说清楚。


一、Ubuntu 默认情况(rsyslog + logrotate)

Ubuntu 默认用 rsyslog 写日志,日志文件如:

/var/log/syslog

1️⃣ 用 logrotate 限制大小(推荐)

logrotate 配置文件一般在:

/etc/logrotate.d/rsyslog

示例(限定 syslog 大小):

/var/log/syslog
{
    size 50M
    rotate 4
    missingok
    notifempty
    compress
    delaycompress
    sharedscripts
    postrotate
        /usr/lib/rsyslog/rsyslog-rotate
    endscript
}

说明:

  • size 50M:日志超过 50M 就轮转
  • rotate 4:最多保留 4 个旧日志
  • compress:压缩旧日志

让配置立刻生效(测试):

logrotate -d /etc/logrotate.d/rsyslog   # 模拟
logrotate -f /etc/logrotate.d/rsyslog  # 强制执行

二、如果用的是 systemd-journald(/var/log/journal)

Ubuntu 也常用 journalctl 日志系统。

限制 journal 日志大小

编辑:

/etc/systemd/journald.conf

常用参数:

SystemMaxUse=500M
SystemKeepFree=100M
SystemMaxFileSize=50M
MaxRetentionSec=2week

然后重启:

systemctl restart systemd-journald

查看当前限制:

journalctl --disk-usage

三、rsyslog 自身限制(不常用)

rsyslog 也可以限制单文件大小(需要模块):

module(load="imfile")

一般不建议,用 logrotate 更简单稳定。


四、快速选择建议

场景 建议
限制 /var/log/syslog logrotate.d/rsyslog
限制 journalctl 日志 journald.conf
不想写太大 两者都限制

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

  • Ubuntu 版本
  • 用的是 rsyslog 还是 journald
  • 想限制的是哪个日志文件

我可以直接给你一份可直接用的配置

0