Tomcat 服务器在 tmp 中创建目录
Posted
技术标签:
【中文标题】Tomcat 服务器在 tmp 中创建目录【英文标题】:Tomcat Server creating Directories in tmp 【发布时间】:2015-03-08 01:07:52 【问题描述】:每次我的嵌入式虚拟 tomcat 服务器运行(spring boot)时,它都会在 /tmp/
中创建一个名为 tomcat.##########################.8080
的目录结构(我猜 8080 是用于端口或其他东西,但 8080 是一致的)。这种结构单独并不会占用太多空间,但是在经常运行 Tomcat 服务器之后,随着时间的推移,它可能会被填满。作为可配置选项,我可以防止这种情况发生吗?
创建的路径示例如下所示:
/tmp/tomcat.1185139485157901.8080/work/Tomcat/localhost/_/
SESSIONS.ser
WEB-INF/
等等等等等等。
【问题讨论】:
我还注意到 org.apache.tomcat.embed 7.0.52 在这些临时目录中留下的数据比 8.0.23 多得多。 【参考方案1】:不幸的是,嵌入式和非嵌入式 Tomcat 都需要有一个目录来存储临时文件。这是不可配置的,但是,您可以使用 setBaseDir
指定 Tomcat 存储这些临时文件的目录。
这应该是第一个名为 public void setBaseDir(String basedir)
的方法,如果您的代码中没有指定它,它将在
system properties - catalina.base, catalina.home - $HOME/tomcat.$PORT
通过了解位置,我建议编写一个简单的计划脚本,该脚本会经常检查并删除该目录下的文件。
【讨论】:
谢谢。这是一个老问题,但我几乎是这样处理的。我创建了一个 cronjob 来检查tmp
中的目录数量,并在某个阈值后删除。
这是一个非常古老的问题,但通常 /tmp 应该已经被 O/S 不时清除(参见,例如serverfault.com/questions/377348/when-does-tmp-get-cleared)。因此,您还应该考虑将 O/S 设置为适当的选项(即在 /tmp. 中配置足够的空间以及足够频繁的清洁计划,以免接近填满)以上是关于Tomcat 服务器在 tmp 中创建目录的主要内容,如果未能解决你的问题,请参考以下文章