有没有办法让logrotate只压缩X天前修改过的文件(例如mtime +2)
答案 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