在没有tomcat重启的情况下截断catalina.out

时间:2017-03-17 16:47:00

标签: linux bash tomcat cron

我通过作为cron作业执行的bash脚本截断catalina.out文件。这是代码

# delete catalina.out files larger than 1 GiG, and replace with empty file if deleted

for f in $(find /tomcat_home*/. -name catalina.out -size +1000M); do
   rm $f
   touch $f
done

名义上这是书面的。问题是运行的tomcat实例显然无法登录到这个新创建的catalina.out(创建后大小总是0字节),这使得我的cron作业变得毫无用处。

基本上,我需要一个缩小文件的解决方案,但允许正在运行的tomcat实例继续写入它。有任何想法吗?谢谢!

1 个答案:

答案 0 :(得分:0)

我只是使用:

for f in $(find /tomcat_home*/. -name catalina.out -size +1000M); do
   echo "" >$f
done

>以覆盖所有内容的方式发送输出(附加>>附加)。在这种情况下,你永远不会删除文件,所以你应该很好。