温馨提示×

Debian message日志如何分割

小樊
34
2026-07-26 23:03:37
栏目: 智能运维

在 Debian 系统中,/var/log/messages 日志的分割(轮转)通常通过 logrotate 工具实现。以下是详细配置方法:


1. Debian 中 /var/log/messages 的来源

  • Debian 默认 不一定启用 rsyslog/var/log/messages
    • 很多 Debian 系统只使用:
      • /var/log/syslog
      • /var/log/kern.log
    • 如果你确实有 /var/log/messages,通常是 rsyslogsyslog-ng 产生的

2. 使用 logrotate 分割 messages 日志

2.1 查看 logrotate 主配置

cat /etc/logrotate.conf

2.2 查看已有 rsyslog 轮转规则

Debian 默认 rsyslog 的轮转配置在:

/etc/logrotate.d/rsyslog

编辑它:

sudo nano /etc/logrotate.d/rsyslog

3. 添加 /var/log/messages 轮转(示例)

如果文件中没有 messages,可以手动加上:

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

参数说明

参数 含义
rotate 7 保留 7 个历史文件
daily 每天轮转
missingok 文件不存在不报错
notifempty 空文件不轮转
compress 使用 gzip 压缩
delaycompress 延迟一次压缩
postrotate 轮转后重启 rsyslog

4. 测试 logrotate 配置

4.1 检查语法

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

4.2 手动执行一次

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

5. 确认 rsyslog 是否真的在写 messages

查看 rsyslog 配置:

grep messages /etc/rsyslog.conf /etc/rsyslog.d/*.conf

如果没有,可以手动添加:

*.info;mail.none;authpriv.none;cron.none    /var/log/messages

然后重启:

sudo systemctl restart rsyslog

6. systemd 日志(journal)说明

如果你使用的是 systemd-journald,它 不使用 logrotate,而用:

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

7. 常见问题

Q1:messages 文件不存在?

  • 默认 Debian 可能没启用
  • 可改用 /var/log/syslog

Q2:日志不轮转?

  • 检查 cron 是否运行
  • 查看 /var/lib/logrotate/status

如果你愿意,可以贴出:

ls /var/log/
cat /etc/rsyslog.conf

我可以帮你精确配置 ✅

0