【问题标题】:logrotate - compression files modified x number of dayslogrotate - 压缩文件修改 x 天数
【发布时间】:2011-05-28 14:02:15
【问题描述】:

有没有办法让 logrotate 只压缩 X 天前修改的文件(例如 mtime +2)

【问题讨论】:

    标签: linux logrotate


    【解决方案1】:

    一种选择是使用logrotate 旋转到不同的扩展名,然后使用logrotate 旋转到压缩文件:

    /var/log/raw.log {
      daily
      nocompress
      extension .old
      }
    
    /var/log/*.old {
      daily
      compress
      delaycompress
      rotate 10
      }
    

    这个 Rube Goldberg 装置将产生以下结果:

    raw.log
    raw.log.old
    raw.log.old.1
    raw.log.old.2.gz
    raw.log.old.3.gz
    

    因此,您有两天未压缩的归档日志。

    【讨论】:

      【解决方案2】:

      您可以使用 delaycompress 再等待一个周期。基本上,如果您每天轮换,它将保持昨天的日志未压缩。

      此外,您可以尝试不使用 logrotate 来压缩文件并编写一个 bash 脚本以每天运行一次并压缩所有早于某个日期的文件。

      这是我个人喜欢的 bash 教程:http://www.linuxconfig.org/Bash_scripting_Tutorial

      【讨论】:

        【解决方案3】:

        你能做如下的事情吗?

        /var/log/access.log {
            daily
            nocompress
        }
        
        /var/log/access.7.log {
             daily
             compress
        }
        

        我认为这会给你类似的东西

        access.log
        access.1.log
        access.2.log
        access.3.log    
        access.4.log
        access.5.log
        access.6.log
        access.7.log.gz
        access.8.log.gz
        access.log
        

        【讨论】:

        • 任何判决?这看起来棒极了
        • 这不起作用,因为未删除解压缩日志。刚刚添加了一个压缩版本。
        猜你喜欢
        • 2015-12-05
        • 2011-11-08
        • 1970-01-01
        • 2014-12-07
        • 2019-06-24
        • 2015-09-22
        • 1970-01-01
        • 2017-11-24
        • 2018-01-03
        相关资源
        最近更新 更多