logrotate - 压缩文件修改x天数

时间:2010-12-21 01:02:42

标签: linux logrotate

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

3 个答案:

答案 0 :(得分:7)

一种选择是使用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

因此,您有两个未压缩的存档日志。

答案 1 :(得分:2)

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

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

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

答案 2 :(得分:-1)

你可以做以下的事情吗?

/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