使用logrotate删除文件


13

是否可以通过使用logrotate而不实际旋转目录文件来删除目录中的日志文件?我们有一个应用程序,它以以下格式生成日志:app.log.DD_MM_YYYY。我无法使用以下配置进行logrotate:

/opt/log/app/app.log.* {
         rotate 0
         missingok
         nomail
}

可以进行日志轮换吗?还是应该只编写一个脚本并将其放在cron中?

最好,-尤利安语


如果您不需要这些日志,为什么不禁用应用程序的日志记录功能?
Deeh,2015年

1
很抱歉,但我不能把这当作答案。为了满足您的好奇心,我们需要这些日志来进行不同的操作,例如调试,我们只是不想让它们在那里腐烂。
Iulian

Answers:


16

在这种情况下,您可能需要使用后旋转。在下面的示例中,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
}

4

logrotate的目的是在自定义时间间隔内保留自定义数量的日志文件。我会用cron完成您的任务。有关在这里使用logrotate可以做什么的更多信息:http : //www.jamescoyle.net/cheat-sheets/676-logrotate-cheat-sheet


2
请不要发布仅链接的答案,以防止链接腐烂。而是将链接中最相关的信息添加到您的答案中,或者将链接作为评论而不是答案发布。有关更多信息,请参阅帮助中心文章。
Sven
By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.