找到了!真正的“空间黑洞”就是:
📁 **
/usr/local/apache-tomcat-9.0.71/logs/catalina.out—— **一个 118GB 的 Tomcat 日志文件!
这是非常典型的 Tomcat 日志未轮转导致磁盘爆满 的问题。
✅ 立即释放空间:清空 catalina.out
🔥 安全清空日志(不中断 Tomcat 服务):
> /usr/local/apache-tomcat-9.0.71/logs/catalina.out
✅ 这条命令会清空文件内容但保留文件句柄,Tomcat 进程可以继续写入,服务完全不受影响。
或者(等效):
truncate -s 0 /usr/local/apache-tomcat-9.0.71/logs/catalina.out
📊 清理后验证
# 查看日志是否已清空
ls -lh /usr/local/apache-tomcat-9.0.71/logs/catalina.out
# 查看磁盘空间是否释放
df -h
你应该会看到:
catalina.out大小变为0/分区可用空间从 ~458M 增加到 100GB+
🔒 防止再次爆盘:配置 Tomcat 日志轮转
✅ 方法1:使用 logrotate(推荐)
创建配置文件:
cat > /etc/logrotate.d/tomcat <<EOF
/usr/local/apache-tomcat-9.0.71/logs/catalina.out {
copytruncate
daily
rotate 7
compress
missingok
size 100M
}
EOF
copytruncate:先复制日志再清空原文件,避免 Tomcat 写入中断size 100M:当日志超过 100MB 就轮转rotate 7:保留最近 7 个日志文件compress:自动压缩旧日志(.gz)
✅ 方法2:禁用 catalina.out(可选)
如果你不需要标准输出日志,可以在 Tomcat 启动脚本中重定向到 /dev/null。
编辑 bin/catalina.sh(不推荐直接改,建议通过 setenv.sh):
# 创建 setenv.sh(Tomcat 会自动加载)
echo 'CATALINA_OUT="/dev/null"' > /usr/local/apache-tomcat-9.0.71/bin/setenv.sh
chmod +x /usr/local/apache-tomcat-9.0.71/bin/setenv.sh
⚠️ 但这样会丢失 startup/shutdown 日志,一般建议用 logrotate 而非禁用。
🧹 补充建议
-
检查其他日志文件:
ls -lh /usr/local/apache-tomcat-9.0.71/logs/如果
localhost_access_log.*.txt很大,也可考虑在conf/server.xml中关闭访问日志(或限制)。 -
重启 Tomcat(非必须):
清空catalina.out后不需要重启,但如果你刚配置了logrotate,可等一天看是否生效。 -
监控磁盘:
# 添加一个 cron 每天检查 echo "0 2 * * * df -h | mail -s 'Disk Usage' your@email.com" | crontab -
✅ 总结操作(复制粘贴即可)
# 1. 清空大日志
> /usr/local/apache-tomcat-9.0.71/logs/catalina.out
# 2. 配置自动轮转
cat > /etc/logrotate.d/tomcat <<EOF
/usr/local/apache-tomcat-9.0.71/logs/catalina.out {
copytruncate
daily
rotate 7
compress
missingok
size 100M
}
EOF
# 3. 验证
df -h
ls -lh /usr/local/apache-tomcat-9.0.71/logs/catalina.out
完成以上操作后,你的磁盘空间将立即释放 118GB+,系统恢复正常!
并且未来再也不会因 Tomcat 日志爆盘。
🎉 问题解决!
1094

被折叠的 条评论
为什么被折叠?



