如果Tomcat停止,删除catalina.out是否安全?



我的catalina.out文件有37 GB,这似乎阻止了我的应用程序在linux(Centos)服务器上正常运行,因为该文件占用了我所有的服务器空间。我从没想过日志文件可以变得这么大。停止Tomcat(Tomcat9)并删除catalina.out是否安全(我没有测试服务器可以尝试)?当我再次启动Tomcat时是否创建了一个新的catalina.out文件?

还是做会更好

sudo echo > catalina.out

如此处所述。这个命令到底有什么作用?

无论如何,我需要不时停止 Tomcat 以更新我的应用程序,并且我不需要存储较旧的日志文件。那么,保持 catalina.out 小的最好方法是什么?

即使 Tomcat 正在运行,您也可以安全地截断(即用空字符串替换内容)catalina.out文件,这可以通过多种方式完成:

cat > catalina.out
# or
truncate catalina.out

删除文件,而Tomcat关闭也可以,但是在正在运行的Tomcat上,这将产生很大的副作用:Tomcat仍将将数据附加到已删除的文件中,并且在Tomcat关闭之前不会释放空间。

为了保持catalina.out小,您应该:

  • logging.properties中删除ConsoleHandler(.handlershandlers):记录到ConsoleHandler的数据也记录到catalina.<date>.log
  • 确保应用程序的日志记录系统不会记录到标准输出/标准错误,而是记录到正确旋转的文件。

如果在停止tomcat后删除catalina.out,它将在tomcat再次启动后创建一个新catalina.out并且它是完全安全的。如果您在tomcat运行时删除catalina.out,它将继续记录到已经删除catalina.out(文件的引用由tomcat持有),因此空间不会被释放。因此,您需要重新启动tomcat服务器以释放空间。不建议这样做。

服务器停止时删除/移动catalina.outtomcat完全不会有任何问题。

但是在公共使用tomcat上运行的关键应用程序中,这将不是一个好的解决方案,因为会有停机时间。

实际上,您可以使用以下命令清除catalina.out文件的日志,而无需停止tomcat。

sudo cat /dev/null > /opt/tomcat/apache-tomcat-9.0.37/logs/catalina.out  

若要保持catalina.out较小并删除较旧的日志,可以使用以下任一方法:

  1. 您可以使用上面的Linux命令并将其添加到CronScheduler根据需要每天/每周/每月或每年运行。

  2. Linux中使用logrotate工具。它是一个日志管理命令行工具 在 Linux 中。这可以在不同条件下轮换日志文件。 特别是,我们可以在固定的持续时间内轮换日志文件,或者如果 文件已增长到一定大小。您可以单击此处了解更多信息 关于这个的信息。

相关内容

  • 没有找到相关文章