当前位置:首页 > 操作系统 > Linux

linux – logrotate:删除超过n天的tomcat / jboss日志

我没有找到清除旧的tomcat或jboss日志或任何其他带时间戳的日志的解决方案:catalog.log./server.log ..基本上这些日志由jboss旋转为:
server.log,server.log.20131201,server.log.20131203等.

有没有办法我可以使用logrotate删除超过n天的日志?我不想在postrotate里面使用find或调整jboss / tomcat日志属性.我只想知道logrotate是否可以实现这一点.我知道这不是很有效率,但我遇到了一个问题,我需要回答这个问题.

解决方法:

如果你不想在postrotate里面使用find,那么你不能.

logrotate将Tomcat / JBoss轮换的每个server.log实例视为一个不同的文件,由于它们是唯一的,因此logrotate只会将它们旋转一次. maxage – 删除超过n天的旋转日志的指令 – 仅在要旋转日志文件时进行检查,以便maxage仅执行一次并且无法跟踪文件的年龄.

但是,如果您改变主意使用find,logrotate可以帮助您简化Tomcat和JBoss创建的日志文件的管理.我使用它来压缩和删除旧文件,配置文件如下:

/path/to/logs/server.log.????-??-?? {
    compress
    compresscmd /usr/bin/bzip2
    nocreate
    nodateext
    ifempty
    missingok
    rotate 1
    size 0
    start 0
    lastaction
        # Remove rotated files older than 180 days
        find /path/to/logs -name 'server.log.????-??-??.0.bz2' -mtime +180 -exec rm {} ;
    endscript
}

哪里:

>旋转1并压缩重命名并压缩,例如server.log.20131201到server.log.20131201.0.bz2.时间戳和.bz2扩展名之间的0来自开始0.
> size 0确保始终重命名和压缩文件.
> lastaction块删除超过180天的旋转文件.


【说明】本文章由站长整理发布,文章内容不代表本站观点,如文中有侵权行为,请与本站客服联系(QQ:254677821)!

相关教程推荐

其他课程推荐