是否可以使用 logrotate 删除目录中的日志文件,而不实际旋转它们?我们有一个应用程序,它以以下格式生成日志:app.log.DD_MM_YYYY。我使用具有以下配置的 logrotate 失败了:
/opt/log/app/app.log.* {
rotate 0
missingok
nomail
}
日志轮换可以做到这一点吗?还是我应该只编写一个脚本并将其放在 cron 中?
最好的,-Iulian
答案1
在这种情况下,您可能需要使用 postrotate。在下面的示例中,postrotate 将删除日志轮换后 1 天以前的文件,您可以随意修改它以满足您的需求。
/opt/log/app/app.log.* {
missingok
nomail
postrotate
/usr/bin/find /opt/log/app/ -name "app.log.*" -type f -mtime +0 -exec rm {} \;
endscript
}
答案2
logrotate 的目的是在自定义时间间隔内保存自定义数量的日志文件。我会使用 cron 来完成你的任务。有关 logrotate 的更多功能,请参见此处:http://www.jamescoyle.net/cheat-sheets/676-logrotate-cheat-sheet