Warning: file_get_contents(/data/phpspider/zhask/data//catemap/5/bash/15.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Linux 在不重新启动tomcat的情况下截断catalina.out_Linux_Bash_Tomcat_Cron - Fatal编程技术网

Linux 在不重新启动tomcat的情况下截断catalina.out

Linux 在不重新启动tomcat的情况下截断catalina.out,linux,bash,tomcat,cron,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实例

我通过作为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实例继续写入。有什么想法吗?谢谢

我只想使用:

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

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

这很有效!截断,tomcat仍在给它写信。谢谢