Tomcat日志catalina.out文件过大的处理方法

我们知道一般企业使用Tomcat 作为Web端时,它产生的日志会越来越大,特别是catalina.out这个日志文件,然而有些人使用rm -rf catalina.out直接删除掉这个文件,所导致的结果就是空间没有得到释放反而越来越大;

今天老蔡发现Tomcat的日志所在的opt分区约占越满,上服务器查看发现磁盘使用空间为100多G,但用du查看实际使用空间不到30G。因此70多G空间是因为删除正在读的文件而导致文件被删除而空间没释放造成的。

用lsof查看如下面所示,见标红行。处理办法:

1.重启机器或者重启相关服务(http)。

2.删掉进程,具体为:

)

从 lsof的输出中,可以发现pid为13479 的进程持有着以文件描述号(fd)为 1打开的文件/tmp/audit_priority.log。在我们找到了这个文件之后可以通过结束进程的方式来释放被占用的空间:

为了杜绝这个问题,老蔡建议大家可以写个自定义的脚本,对于删除正在写的文件一般用 cat /dev/null > file,而不是直接rm(直接rm会造成文件删除空间不释放的问题)。