【发布时间】:2011-05-28 14:02:15
【问题描述】:
有没有办法让 logrotate 只压缩 X 天前修改的文件(例如 mtime +2)
【问题讨论】:
有没有办法让 logrotate 只压缩 X 天前修改的文件(例如 mtime +2)
【问题讨论】:
一种选择是使用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
因此,您有两天未压缩的归档日志。
【讨论】:
您可以使用 delaycompress 再等待一个周期。基本上,如果您每天轮换,它将保持昨天的日志未压缩。
此外,您可以尝试不使用 logrotate 来压缩文件并编写一个 bash 脚本以每天运行一次并压缩所有早于某个日期的文件。
这是我个人喜欢的 bash 教程:http://www.linuxconfig.org/Bash_scripting_Tutorial
【讨论】:
你能做如下的事情吗?
/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
【讨论】: