在unix bok上附加shell脚本执行的标准输出和错误,如下所示
/home/mydir/shellScript.sh >> /home/mydir/shellScript.log 2>&1
现在我想知道一种方法来保持日志回溯30天,否则日志文件大小将继续增加。 如果有人可以提供相同的建议,将不胜感激。
答案 0 :(得分:4)
这种情况通常使用logrotate
等工具完成。
例如,使用Apache的日志,我已经看到过:
所以,我想你可以用它来得到你所要求的东西。
答案 1 :(得分:2)
这是一个长期运行的脚本(例如守护进程)吗?或者它做了什么然后快速退出?您可以根据今天的日期动态构建日志文件的名称,以便在日期更改时生成新文件:
#/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
(添加过时的日志删除)。
答案 2 :(得分:1)
Pascal MARTIN是正确的 - 将配置文件放入/etc/logrotate.d
或在文件末尾添加条目/etc/logrotate
是一件简单的事情,因为logrotate
是包含库存在大多数UNIX系统中。这是一个非常容易理解的配置文件,大约需要5分钟。在一个手册页上了解。我推荐它作为最简单,最易维护的解决方案。
答案 3 :(得分:0)
包含的问题背景不是很多。
我同意所提供的两种解决方案。
我还会指出你关于命名和管理日志文件的2篇相当啰嗦的文章。
Bash piping output and input of a program
command line wisdom for 2 panel file manager user
我希望这些帮助。