在 CentOS 上清理 Java 日志,通常有多种方式,取决于日志类型和是否还希望后续自动管理。下面按常见场景给你说明。
Java 日志一般来自以下几类:
/opt/xxx/logs//var/log/xxx//usr/local/tomcat/logs/# 查看日志大小
du -sh /opt/xxx/logs/*
# 删除旧日志
rm -f /opt/xxx/logs/*.log.*
rm -f /opt/xxx/logs/*.log
⚠️ 注意:
# 清空而不删除
: > /opt/xxx/logs/app.log
或
truncate -s 0 /opt/xxx/logs/app.log
CentOS 自带 logrotate
vim /etc/logrotate.d/java-app
内容示例:
/opt/xxx/logs/*.log {
daily
rotate 7
compress
missingok
notifempty
copytruncate
}
参数说明:
daily:每天切割rotate 7:保留 7 份compress:压缩旧日志copytruncate:不重启 Java 进程测试:
logrotate -d /etc/logrotate.d/java-app
logrotate -f /etc/logrotate.d/java-app
vim /usr/local/tomcat/conf/logging.properties
减少日志级别或关闭 access log
或定时清理:
find /usr/local/tomcat/logs -mtime +7 -delete
如果是 systemd 启动的 Java:
# 查看占用
journalctl --disk-usage
# 清理
journalctl --vacuum-time=7d
配置文件:
vim /etc/systemd/journald.conf
SystemMaxUse=500M
示例(logback):
<appender name="FILE" class="ch.qos.logback.core.rolling.RollingFileAppender">
<rollingPolicy class="ch.qos.logback.core.rolling.TimeBasedRollingPolicy">
<fileNamePattern>app.%d{yyyy-MM-dd}.log</fileNamePattern>
<maxHistory>7</maxHistory>
</rollingPolicy>
</appender>
✅ 临时清理:用 truncate
✅ 长期方案:logrotate + 应用日志滚动
✅ 不要直接 rm 正在写的日志文件
如果你愿意,可以告诉我:
我可以给你一份精准可用的配置。