在 CentOS 中,“syslog 分割”通常指的是日志轮转(log rotation),最常见的方式是使用 logrotate。下面按常见场景说明。
CentOS 默认用 rsyslog + logrotate 管理日志。
常见路径:
/var/log/messages
/var/log/secure
/var/log/maillog
cat /etc/logrotate.d/syslog
典型内容(CentOS 7):
/var/log/cron
/var/log/maillog
/var/log/messages
/var/log/secure
/var/log/spooler
{
missingok
sharedscripts
postrotate
/bin/kill -HUP `cat /var/run/syslogd.pid 2>/dev/null` 2>/dev/null || true
endscript
}
编辑或新建:
vi /etc/logrotate.d/syslog-custom
内容示例:
/var/log/messages
/var/log/secure
{
daily
rotate 7
compress
delaycompress
missingok
notifempty
create 0640 root root
sharedscripts
postrotate
systemctl kill -s HUP rsyslog.service
endscript
}
说明:
daily:每天分割rotate 7:保留 7 个历史文件compress:压缩旧日志create:新建日志文件postrotate:通知 rsyslog 重新打开日志logrotate -d /etc/logrotate.conf # 调试(不真正执行)
logrotate -f /etc/logrotate.conf # 强制执行
如果你希望日志达到一定大小就分割:
/var/log/messages
{
size 100M
rotate 5
compress
missingok
notifempty
create 0640 root root
postrotate
systemctl kill -s HUP rsyslog.service
endscript
}
如果你不想用 logrotate,也可以在 rsyslog 中配置:
module(load="imfile")
或使用 omfile + dynafile + rollingInterval
但通常不建议,logrotate 更简单稳定。
postrotate 里 HUP rsyslog/var/log 上下文service rsyslog reloadsystemctl kill -s HUP rsyslog如果你能告诉我:
我可以给你一份可直接用的配置。