在 CentOS 上做日志清理(log cleanup)总体是好的、也是必要的,但要注意方式方法,否则可能带来风险或误删重要信息。下面给你一个清晰的建议清单。
一、为什么需要清理日志(好处)
- 防止
/var/log或/分区被写满 - 提升系统性能(避免大量小文件 IO)
- 减少运维干扰(旧日志没价值)
- 降低安全风险(避免敏感日志长期留存)
二、CentOS 推荐的安全清理方式(✅ 正确做法)
1️⃣ 使用 logrotate(最推荐)
CentOS 默认已安装并配置 logrotate
/etc/logrotate.conf
/etc/logrotate.d/
常见行为:
- 自动轮转(按天/周/月)
- 压缩旧日志(
.gz) - 保留 N 份后删除
✅ 一般不需要手动删,只需检查配置是否合理
查看示例:
cat /etc/logrotate.d/syslog
2️⃣ 手动清理(只删“旧日志”)
例如:
# 删除 30 天前的日志
find /var/log -name "*.log-*" -mtime +30 -delete
或只删压缩日志:
find /var/log -name "*.gz" -mtime +30 -delete
✅ 安全
❌ 不要直接删正在写入的日志文件
3️⃣ 正确清空正在使用的日志
如果你发现某个日志很大(如 messages):
❌ 错误:
rm /var/log/messages
✅ 正确:
> /var/log/messages
或
truncate -s 0 /var/log/messages
三、不推荐 / 危险的做法(⚠️ 注意)
| 行为 | 风险 |
|---|---|
rm -rf /var/log/* |
系统可能异常、服务无法写日志 |
删除 .journal 文件 |
journald 可能崩溃 |
| 删正在写入的日志 | 磁盘空间不释放(文件句柄未释放) |
四、systemd 日志清理(CentOS 7+)
journalctl --disk-usage
journalctl --vacuum-time=7d
journalctl --vacuum-size=500M
五、总结一句话
✅ CentOS 清理日志是好的
✅ 用 logrotate + 定期 vacuum
❌ 不要暴力 rm
如果你愿意,我可以:
- 帮你检查当前
/var/log占用 - 给你一份「安全清理脚本」
- 按你的 CentOS 版本(6 / 7 / 8 / Stream)定制方案