首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >从cron作业创建空catalina.out (基于刚刚删除的catalina.out)

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

Stack Overflow用户
提问于 2017-03-08 15:26:16
回答 1查看 471关注 0票数 0

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

代码语言:javascript
复制
find /apache-tomcat-blah*/. -name catalina.out -size +1000M -delete

然而,我的问题是,我需要自动创建一个新的空的位置,一旦旧的一个被删除。

挑战是,我无法提前知道从哪个tomcat实例中删除了哪个catalina.out。另外,我不想假设我知道与/apache- tomcat */对应的所有tomcat实例。我们不时地改变它们。

我假设find命令知道它刚刚删除了什么(也许我不应该这样认为),这样理论上我就可以像以下所示的那样传输这些信息:

代码语言:javascript
复制
$ echo "" > /apache-tomcat-justDeletedFromDir/logs/catalina.out

如果我能找到在字符串的apache-tomcat-justDeletedFromDir部分放什么。

如有任何意见,我将不胜感激。谢谢!

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2017-03-08 15:28:23

为什么不直接用这样的方法:

代码语言:javascript
复制
for f in $(find /apache-tomcat-blah*/. -name catalina.out -size +1000M); do
   rm $f
   touch $f
done

因此,您的find命令现在在子subshell $()中执行,bash脚本遍历输出(文件列表)并删除每个输出(通过rm)并创建一个新的(通过touch)。

如果您的文件中有空格,则需要小心处理上面的内容(注意)。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/42675300

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档