在 CentOS 上清理 Java 日志,通常取决于日志的生成方式(Tomcat、Spring Boot、Log4j、Logback 等)。下面按常见场景给你一套实用方案。
常见位置:
/var/log/
/tmp/
项目目录下(如 /opt/app/logs)
tomcat 目录下(如 /usr/local/tomcat/logs)
查找大文件日志:
find / -name "*.log" -size +100M 2>/dev/null
路径示例:
/usr/local/tomcat/logs
清空而不删除文件(推荐):
: > /usr/local/tomcat/logs/catalina.out
或:
truncate -s 0 /usr/local/tomcat/logs/catalina.out
删除旧日志:
rm -f /usr/local/tomcat/logs/*.log.*
通常位置:
/opt/app/logs/app.log
清空日志:
truncate -s 0 /opt/app/logs/app.log
删除 7 天前的日志:
find /opt/app/logs -name "*.log*" -mtime +7 -delete
如果是生产环境,不要手动删,用 logrotate 自动管理
示例配置(/etc/logrotate.d/java-app):
/opt/app/logs/*.log {
daily
rotate 7
compress
missingok
notifempty
copytruncate
}
测试:
logrotate -d /etc/logrotate.d/java-app
立即执行:
logrotate -f /etc/logrotate.d/java-app
✅ 不要直接 rm 正在写入的日志文件
truncate -s 0 或 copytruncate✅ 清理后确认磁盘释放:
df -h
lsof | grep deleted
你可以告诉我:
我可以帮你写一份专属清理方案或 logrotate 配置。