温馨提示×

debian message如何轮转

小樊
49
2026-09-28 05:59:44
栏目: 智能运维

在 Debian 里“message 轮转”通常指 系统日志(如 /var/log/messages、syslog 等)的日志轮转。Debian 默认使用 logrotate 来做这件事。

下面按常见场景说明。


一、Debian 默认的日志轮转机制

Debian 使用:

  • rsyslog / syslog-ng:负责写日志
  • logrotate:负责轮转、压缩、删除旧日志

配置文件位置:

/etc/logrotate.conf          # 主配置
/etc/logrotate.d/            # 各服务的轮转配置

系统日志通常配置在:

/etc/logrotate.d/rsyslog

二、示例:/var/log/messages 轮转配置

编辑或查看:

/etc/logrotate.d/rsyslog

常见内容示例:

/var/log/messages {
    rotate 7
    daily
    missingok
    notifempty
    delaycompress
    compress
    postrotate
        /usr/bin/killall -HUP rsyslogd
    endscript
}

含义:

  • daily:每天轮转
  • rotate 7:保留 7 份
  • compress:压缩旧日志
  • missingok:日志不存在也不报错
  • notifempty:空日志不轮转
  • postrotate:轮转后通知 rsyslog 重新打开文件

三、手动测试轮转(不真正执行)

logrotate -d /etc/logrotate.conf

强制立即轮转:

logrotate -f /etc/logrotate.conf

四、如果使用的是 systemd 日志(journal)

Debian 若启用 systemd-journald,日志不在 /var/log/messages,而在:

/var/log/journal/

查看:

journalctl

轮转 journal 日志:

journalctl --vacuum-size=500M
journalctl --vacuum-time=2weeks

或修改:

/etc/systemd/journald.conf

例如:

SystemMaxUse=500M
MaxRetentionSec=2week

然后:

systemctl restart systemd-journald

五、常见问题

1. messages 没有轮转?

检查:

  • rsyslog 是否运行
  • logrotate 是否每天执行(cron / systemd timer)
cat /etc/cron.daily/logrotate

2. 日志一直变大?

可能是:

  • 没配置轮转
  • 程序没释放文件(需 HUP)

如果你指的是 特定程序的 message 日志(如 PostgreSQL、MySQL、自定义 message 文件),可以把路径或程序名发我,我可以给针对性配置。

0 踩