2017-03-17 51 views
0

我正在通过作为cron作业执行的bash脚本截断catalina.out文件。这里的代码是截断catalina.out而不使用tomcat重启

# 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

我只是用:

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

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

+0

工作!截断和tomcat仍在写入它。谢谢! –