logrotate - 压缩文件修改x天数

use*_*829 7 linux logrotate

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

Man*_*Dee 10

一个选项可能是用于logrotate旋转到不同的扩展名,然后用于logrotate旋转到压缩文件:

/var/log/raw.log {
  daily
  nocompress
  extension .old
  }

/var/log/*.old {
  daily
  compress
  delaycompress
  rotate 10
  }
Run Code Online (Sandbox Code Playgroud)

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

raw.log
raw.log.old
raw.log.old.1
raw.log.old.2.gz
raw.log.old.3.gz
Run Code Online (Sandbox Code Playgroud)

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


Pat*_*ick 5

那么你可以使用 delaycompress 来等待一个循环。基本上,如果您每天轮换,那么它会保持昨天的日志未压缩。

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

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