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 中创建目录的主要内容,如果未能解决你的问题,请参考以下文章

pyspark 给出以下错误无法在 /tmp 中创建本地目录

如何在Tomcat中创建,发布和访问基于CXF的服务

如何在 Apache Tomcat 中创建“别名”?

在Eclipse中创建Web项目

通过DockerFile创建tomcat+ssh服务镜像

你如何检查dfs中的目录