【问题标题】:Logs files becoming zero size after rotate日志文件在旋转后变为零大小
【发布时间】:2016-05-23 15:17:40
【问题描述】:

我正在尝试运行 logrotate 以进行访问,hostmanager 和 manager 在 tomcat 中登录。我编写了以下脚本,在轮换后 清空文件。除此之外,postrotate 和 preroate 中的删除和压缩工作正常。

/srv/www/tomcat/Container*/logs/access*
/srv/www/tomcat/Container*/logs/catalina.*.log
/srv/www/tomcat/Container*/logs/host-manager.*.log
/srv/www/tomcat/Container*/logs/localhost.*.log
/srv/www/tomcat/Container*/logs/manager.*.log

{
    missingok
    notifempty
    daily
    rotate 0
    prerotate
        /bin/find /srv/www/tomcat/Container*/logs/  -maxdepth 1 -mtime +2 -name "*.log" -exec gzip {} \; || true
        endscript
    postrotate
      /bin/find /srv/www/tomcat/Container*/logs/  -mindepth 1 -mtime +10 -name "*.gz" -delete || true


  endscript
}

【问题讨论】:

  • 清空命令在哪里?
  • 我的意思是,这些文件有一些 MB 大小,而在旋转文件后压缩并变为空 0 大小,所有日志文件内容都被清除了。它不应该适合我。示例:access.2016-05-19.log --> 旋转前为 101Mb access.2016-05-19.log.gz --> 旋转后为 0Mb

标签: tomcat logging


【解决方案1】:

以下应该可以工作,压缩每个旋转的文件并使用 maxage 而不是你的 find 命令:

{
    missingok
    notifempty
    daily
    compress
    maxage 12
}

如果要两天后压缩:

{
    missingok
    notifempty
    daily
    maxage 12
    postrotate
        /bin/find /srv/www/tomcat/Container*/logs/ -maxdepth 1 -mtime +2 -name "*.log.?" -exec gzip {} \;
    endscript
}

【讨论】:

    猜你喜欢
    • 2018-11-14
    • 2023-03-03
    • 1970-01-01
    • 1970-01-01
    • 2020-10-26
    • 2015-08-22
    • 2013-12-07
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多