温馨提示×

centos message如何轮转

小樊
36
2026-10-03 03:15:23
栏目: 智能运维

在 CentOS 中,“message”通常指系统日志文件 /var/log/messages。对其进行“轮转(rotate)”一般是通过 logrotate 工具完成的。下面分几种常见情况说明。


一、使用 logrotate 自动轮转(推荐)

CentOS 默认已安装 logrotate,并且自带了 /var/log/messages 的轮转配置。

1. 查看现有配置

cat /etc/logrotate.d/syslog

或

ls /etc/logrotate.d/

常见内容示例:

/var/log/messages {
    missingok
    notifempty
    size 100M
    create 0640 root root
    rotate 7
    compress
    sharedscripts
    postrotate
        /usr/bin/systemctl kill -s HUP rsyslog.service >/dev/null 2>&1 || true
    endscript
}

2. 手动测试轮转

logrotate -d /etc/logrotate.conf   # 模拟执行,不真正轮转
logrotate -f /etc/logrotate.conf   # 强制轮转

3. 常用参数说明

  • daily / weekly / monthly:轮转周期
  • size 100M:达到大小就轮转
  • rotate 7:保留 7 个旧日志
  • compress:压缩旧日志
  • missingok:日志不存在不报错
  • notifempty:空文件不轮转

二、修改 messages 轮转策略(示例)

例如:每天轮转,保留 30 天,超过 50M 就转:

vi /etc/logrotate.d/syslog

修改为:

/var/log/messages {
    daily
    size 50M
    rotate 30
    compress
    delaycompress
    missingok
    notifempty
    create 0640 root root
    sharedscripts
    postrotate
        /usr/bin/systemctl kill -s HUP rsyslog.service >/dev/null 2>&1 || true
    endscript
}

保存后测试:

logrotate -d /etc/logrotate.d/syslog

三、如果是 CentOS 7+(rsyslog)

确保 rsyslog 服务在运行:

systemctl status rsyslog

轮转后需要让 rsyslog 重新打开日志文件(HUP 信号):

kill -HUP $(cat /var/run/syslogd.pid)

(通常 logrotate 配置里已经包含)


四、临时手动轮转(不推荐长期使用)

mv /var/log/messages /var/log/messages.1
touch /var/log/messages
chmod 640 /var/log/messages
chown root:root /var/log/messages
kill -HUP $(cat /var/run/syslogd.pid)

五、常见问题

1. messages 一直不轮转?

  • 检查 logrotate 是否运行:
    cat /var/lib/logrotate/logrotate.status
    
  • 检查 cron:
    systemctl status crond
    

2. 日志太大?

  • 加 size 限制
  • 缩短轮转周期

如果你指的是 某个具体服务(如 message broker、自定义 message 日志),可以告诉我具体路径或软件名,我可以给你更精确的轮转配置。

0 踩