温馨提示×

centos怎样清理java日志

小樊
43
2026-09-15 05:50:59
栏目: 编程语言

在 CentOS 上清理 Java 日志,通常取决于日志的生成方式(Tomcat、Spring Boot、Log4j、Logback 等)。下面按常见场景给你一套实用方案。


一、先找到 Java 日志在哪

常见位置:

/var/log/
/tmp/
项目目录下(如 /opt/app/logs)
tomcat 目录下(如 /usr/local/tomcat/logs)

查找大文件日志:

find / -name "*.log" -size +100M 2>/dev/null

二、常见 Java 日志清理方式

1️⃣ Tomcat 日志(catalina.out 等)

路径示例:

/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.*

2️⃣ Spring Boot 日志(logback / log4j2)

通常位置:

/opt/app/logs/app.log

清空日志:

truncate -s 0 /opt/app/logs/app.log

3️⃣ 按时间清理日志(通用)

删除 7 天前的日志:

find /opt/app/logs -name "*.log*" -mtime +7 -delete

4️⃣ 使用 logrotate(最推荐 ✅)

如果是生产环境,不要手动删,用 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 正在写入的日志文件

  • 可能导致 Java 进程继续写已删除文件,磁盘不释放
  • 正确做法:truncate -s 0 或 copytruncate

✅ 清理后确认磁盘释放:

df -h
lsof | grep deleted

四、如果你愿意

你可以告诉我:

  • Java 应用类型(Tomcat / Spring Boot / 其他)
  • 日志路径
  • 是否有 logback/log4j 配置

我可以帮你写一份专属清理方案或 logrotate 配置。

0 踩