CentOS 中 /var/log/messages 日志过大,通常是由系统或服务产生大量日志导致的。下面按常见原因 → 排查方法 → 解决办法来说明。
sshd 被暴力破解cron 执行失败network / firewalld 异常debug / info 级别日志全部写入 messagesmessagesmessages 没有按大小或时间切割logrotate 未执行eth0: link up/down
disk error
Out of memory
ls -lh /var/log/messages*
tail -n 100 /var/log/messages
或实时查看:
tail -f /var/log/messages
grep -c "" /var/log/messages | wc -l
按服务统计(示例):
awk '{print $5}' /var/log/messages | sort | uniq -c | sort -nr | head
常见输出:
sshd[1234]
cron[5678]
kernel
日志示例:
sshd[1234]: Failed password for root from 1.2.3.4 port 22
✅ 解决:
fail2banCRON[1234]: (root) CMD (/bad/script.sh)
✅ 解决:
crontab -l
检查 logrotate:
cat /etc/logrotate.d/syslog
手动测试:
logrotate -vf /etc/logrotate.conf
✅ 常见修复:
/var/log/messages {
size 100M
rotate 7
compress
missingok
notifempty
postrotate
/usr/bin/systemctl kill -s HUP rsyslog.service >/dev/null 2>&1 || true
endscript
}
查看:
grep messages /etc/rsyslog.conf
避免:
*.* /var/log/messages
✅ 建议:
*.info;mail.none;authpriv.none;cron.none /var/log/messages
> /var/log/messages
systemctl restart rsyslog
⚠ 注意:
rmCentOS messages 日志过大,90% 是因为某个服务异常或日志未轮转。
如果你愿意,可以把 最近 30 行 messages 日志贴出来,我可以帮你精准判断是哪一个服务在“刷屏”。