我通过作为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实例继续写入它。有任何想法吗?谢谢!
答案 0 :(得分:0)
我只是使用:
for f in $(find /tomcat_home*/. -name catalina.out -size +1000M); do
echo "" >$f
done
>以覆盖所有内容的方式发送输出(附加>>附加)。在这种情况下,你永远不会删除文件,所以你应该很好。