如何从cron条目中自动清除perl脚本日志?

时间:2012-12-12 21:03:05

标签: linux perl logging cron purge

我有一个crontab设置,每小时运行一个perl脚本,超过一小时的5分钟(所以2:05,3:05,10:05等):

5 * * * * perl /abs/path/to/my/script.pl >> /abs/path/two/my/script-log.txt 2>&1

如您所见,它还将STDOUT和STDERR重定向到同一个日志文件。

我被要求重构Perl脚本,crontab条目,或者添加任何必要的新代码/脚本,以便每天晚上午夜script-log.txt被清除/刷新/清空。< / p>

也就是说,每晚,午夜,如果script-log.txt中有20MB的文本,要将其清除,以便它现在没有任何内容(0字节),然后在上午12:05 crontab将重新启动,运行script.pl,然后开始向同一个script-log.txt日志文件添加更多文本。

如果有一种方法可以使用某些Linux / Perl魔法来修改crontab条目来设置这样的“每日滚动日志文件”,那么将会非常容易。在最糟糕的情况下,我们总是可以编写一个新脚本来清除script-log.txt并将其命名为午夜运行。但是我的上司非常希望没有另一个cron工作,并且正在寻找一种方法从入口本身(如果可能的话)这样做。

实际上,我们有几十个像这样工作的条目,因此编写“清除脚本”并将其压缩到午夜运行的问题是我们将不断更新清除脚本,因为我们添加/删除其他生成这些日志文件的脚本。因此,如果我们可以在入门级别设置这样的清除,每个cron条目都会自行清理。感谢您提前获得任何见解/建议。

1 个答案:

答案 0 :(得分:3)

您可能需要查看logrotate