旋转异常日志的logrotate问题
Posted
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了旋转异常日志的logrotate问题相关的知识,希望对你有一定的参考价值。
我有一个logrotate的问题。应用程序本身生成以下日志:xxx.log,在23:59,应用程序将日志更改为:xxx.log.2019-01-05,依此类推。现在我在日志目录中得到以下内容:
xxx.log
xxx.log.2019-01-01
xxx.log.2019-01-02
等等
我需要的是想要旋转23:59创建的日志而不是触摸xxx.log
文件本身。
我尝试过以下logrotate规则:
/var/log/xxx/xxx/xxx.log.* {
daily
missingok
rotate 30
compress
notifempty
copytruncate
nosharedscripts
prerotate
bash -c "[[ ! $1 =~ *.gz ]]"
endscript
}
但首先,logrotate不压缩最后创建的日志,它还为先前压缩的文件添加.1.gz扩展名。
答案
logrotate不会压缩最后创建的日志
你有/etc/logrotate.conf中定义的“delaycompress”吗?每logrotate man:
delaycompress
将先前日志文件的压缩推迟到下一个循环周期。
它还增加了.1.gz扩展名
当您在上述手册页中时,您应该查看“扩展”选项的作用:
扩展分机
具有ext扩展名的日志文件可以在旋转后保留它。
以上是关于旋转异常日志的logrotate问题的主要内容,如果未能解决你的问题,请参考以下文章
我一直在尝试使用 logrotate 实用程序并将压缩日志移动到 s3,但是,它仅在强制完成时才会旋转