在 CentOS 系统中,/var/log/messages 日志文件用于记录系统级别的通用消息(包括服务启动、内核消息等)。随着时间推移,该文件可能会变得很大。以下是几种安全、推荐的清理方式,按使用场景说明。
ls -lh /var/log/messages*
logrotate(最推荐)CentOS 默认已配置 logrotate,通常位于:
/etc/logrotate.d/syslog
logrotate -f /etc/logrotate.d/syslog
✅ 效果:
messages 会被重命名(如 messages.1)messages适合临时快速清理:
sudo truncate -s 0 /var/log/messages
或:
sudo > /var/log/messages
✅ 优点:
rm -f /var/log/messages
⚠️ 风险:
如果已经删除,可恢复:
systemctl restart rsyslog
rm -f /var/log/messages.*
或只保留最近几个:
ls -t /var/log/messages.* | tail -n +5 | xargs rm -f
编辑 logrotate 配置:
vim /etc/logrotate.d/syslog
示例(限制大小 + 保留天数):
/var/log/messages {
rotate 7
daily
size 100M
missingok
notifempty
compress
postrotate
/usr/bin/systemctl kill -s HUP rsyslog.service >/dev/null 2>&1 || true
endscript
}
然后测试:
logrotate -d /etc/logrotate.d/syslog
systemctl status rsyslog
| 场景 | 推荐方式 |
|---|---|
| 日常维护 | logrotate |
| 临时清理 | truncate -s 0 |
| 删除旧日志 | 删除 messages.* |
| 长期管理 | 修改 logrotate 配置 |
如果你使用的是 CentOS 7 / 8 / Stream 或 rsyslog / journald 混合环境,可以告诉我,我可以给你更精确的方案。