使用 logrotate 删除文件

使用 logrotate 删除文件

是否可以使用 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

相关内容