logrotate example
example
这个是每小时运行的例子
~/access.*.log {
size 1
rotate 48
compress
missingok
copytruncate
notifempty
#create 644 mmSdk mmSdk
}
这个是每天运行的例子
rotate.stat.logs
mlog.log
ateLog_mk.log
{
size 1
rotate 7
compress
missingok
copytruncate
notifempty
#create 644 mmSdk mmSdk
}
copytruncate 这是两个过程,首选logrotate会先copy一份orig log => log.1, 然后truncate这个 orig log,好处当然就是不需要重启服务,日志可以继续写,坏处就是效率低,因为拷贝时间通常就要很长。
size Log files are rotated only if they grow bigger then size bytes.
create 这个给人的感觉就是一个mv过程,会将orig log => log.1, 然后 touch一个 log文件。在测试中tomcat的accesslog不能被create否则会停止log,感觉这样java的机制有点记住inum的样子。
compress 压缩
-d 非常有用的一个选项,用来测试,看看到底运行什么, test, dry run。
notifempty 期望解决空文件继续被覆盖的情况
missingok next if no exist, no warnning.
rotate 48 一共会rotate48份。这个结合-d就能很直观清楚它在做什么了
usage
33 * * * * nice /usr/sbin/logrotate -f -s logrotate.stat logrotate.stat_tomcat_7711