从cron作业创建空catalina.out(基于刚刚删除的catalina.out)

时间:2017-03-08 15:26:17

标签: bash tomcat cron

我有一个bash脚本,一旦文件超过一定大小,就会成功删除一个或多个tomcat日志目录(我们运行多个实例)的catalina.out文件。我每晚都把这个剧本作为一个cron工作。它基本上是这样的:

find /apache-tomcat-blah*/. -name catalina.out -size +1000M -delete

但是,我的问题是,我需要在删除旧版本后立即自动创建一个新的空文件。

挑战是我不会提前知道删除了tomcat实例的catalina.out。另外,我不想假设我知道对应于/ apache-tomcat-blah * /的所有tomcat实例。我们会不时更改它们。

我假设find命令知道它刚刚删除了什么(也许我不应该假设),这样我理论上可以将这些信息传输到:

$ echo "" > /apache-tomcat-justDeletedFromDir/logs/catalina.out

如果我能弄清楚该字符串中 apache-tomcat-justDeletedFromDir 的内容。

我会感激任何想法。谢谢!

1 个答案:

答案 0 :(得分:0)

为什么不使用类似的东西:

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

所以你的find命令现在在子shell $()中执行,你的bash脚本遍历输出(文件列表)并删除每一个(通过rm)和创建一个新的(通过touch

如果您的文件中有空格,请注意上述内容(注意)。