我在 unix bok 上附加了 shell 脚本执行的标准输出和错误,如下所示
/home/mydir/shellScript.sh >> /home/mydir/shellScript.log 2>&1
现在我想知道一种方法可以让日志最多回溯 30 天,否则日志文件的大小将继续增加。如果有人可以提供相同的建议,将不胜感激。
我在 unix bok 上附加了 shell 脚本执行的标准输出和错误,如下所示
/home/mydir/shellScript.sh >> /home/mydir/shellScript.log 2>&1
现在我想知道一种方法可以让日志最多回溯 30 天,否则日志文件的大小将继续增加。如果有人可以提供相同的建议,将不胜感激。
这种事情通常是用诸如logrotate
.
例如,对于 Apache 的日志,我已经看到它曾经:
所以,我想你也许可以用它来得到你想要的。
这是一个长时间运行的脚本(例如守护进程)吗?还是它做了什么然后迅速退出?您可以根据今天的日期动态构建日志文件的名称,因此每当日期更改时都会生成一个新文件:
#/bin/sh
now=`date +%F`
/home/mydir/shellScript.sh >> /home/mydir/shellScript-$now.log 2>&1
previous=`date --date='30 days ago' +%F`
rm -f /home/mydir/shellScript-$previous.log 2>&1
(添加过时的日志删除)。
Pascal MARTIN 是正确的 - 将配置文件放入/etc/logrotate.d
或在文件末尾添加条目是一件简单的事情/etc/logrotate
,就像logrotate
大多数 UNIX 系统中包含的那样。这是一个非常易于理解的配置文件,大约需要 5 分钟。在手册页上了解。我推荐它作为最简单和最可维护的解决方案。
您的问题没有很多上下文。
我同意所提供的两种解决方案。
我还要向您指出我关于命名和管理日志文件的 2 篇相当冗长的 ;-) 论述。
我希望这些帮助。