gpt4 book ai didi

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

转载 作者:IT王子 更新时间:2023-10-29 01:04:58 29 4
gpt4 key购买 nike

我还没有找到清除旧的 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 仅执行一次,无法跟踪文件的年龄。

但是,如果您改变主意使用findlogrotate 可以帮助您简化由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
}

哪里:

  • rotate 1 and compress 重命名并压缩,例如,server.log.20131201server.log.20131201.0.bz2 。时间戳和.bz2扩展名之间的0来自start 0
  • size 0 确保文件始终被重命名和压缩。
  • lastaction block 删除超过 180 天的旋转文件。

关于linux - logrotate:删除超过 n 天的 tomcat/jboss 日志,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/21015112/

29 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com