//,这个问题有点模棱两可。Logrotate删除.gz文件吗?也就是说,使用*路径旋转现有的.gz文件?
下面是这种情况:
我日志以下三个扩展,但是我现在的规则只适用于* .log文件:
.1
.log
.txt
另外,因为Tomcat的旋转日志,我具备以下条件:
.gz
我想旋转所有这些文件,但我不想与任何.gz.gz落得文件。我该怎么做呢?
logrotate的规则为Tomcat
目前,我有Tomcat的日志以下规则:
% sudo cat /etc/logrotate.d/tomcat
# THIS FILE IS AUTOMATICALLY DISTRIBUTED BY PUPPET. ANY CHANGES WILL BE
# OVERWRITTEN.
/opt/apache-tomcat_1/logs/*.log {
compress
daily
delaycompress
maxage 60
maxsize 500M
minsize 1k
rotate 20
size 100k
}
为了尝试解决这个问题,我可以在/opt/apache-tomcat_1/logs/*.log
路径更改为类似/opt/apache-tomcat_1/logs/*
,但我想知道是否会以与.log
和.txt
文件相同的方式重新压缩或处理.gz
文件。
请问logrotate
有一些方法知道离开现有.gz
文件足够单独吗?
其他文件
上一次/etc/cron.daily/logrotate
得到更新为大约12天前:
% sudo ls -lanh /etc/cron.daily/logrotate
-r-xr-xr-x 1 0 0 313 Jun 29 21:48 /etc/cron.daily/logrotate
其内容如下:
#!/bin/sh
# THIS FILE IS AUTOMATICALLY DISTRIBUTED BY PUPPET. ANY CHANGES WILL BE
# OVERWRITTEN.
OUTPUT=$(/usr/sbin/logrotate /etc/logrotate.conf 2>&1)
EXITVALUE=$?
if [ $EXITVALUE != 0 ]; then
/usr/bin/logger -t logrotate "ALERT exited abnormally with [$EXITVALUE]"
echo "${OUTPUT}"
fi
exit $EXITVALUE
而且,如果它的相关:
% cat /etc/logrotate.conf
# THIS FILE IS AUTOMATICALLY DISTRIBUTED BY PUPPET.
# ANY CHANGES WILL BE OVERWRITTEN.
create
weekly
rotate 4
# configurable file rotations
include /etc/logrotate.d
我为此做了quick search online,而foundsomeresults。 askubuntu.com的答案是最接近的,但我仍然不确定logrotate
是否会“轮换”.gz
由另一个服务(如Tomcat)创建的文件。
在logrotate路径中使用*
globbing时,这些结果中的任何内容都不会回答关于由其他服务(例如Tomcat)创建的预先存在的.gz文件的此特定问题。
现在,我只需用多个路径/规则解决这个:https://v.gd/yNfAAu
但我很好奇。什么脚本行为智能地使logrotate
忽略现有的.gz
文件,或者以不同的方式处理它们,同时仍然删除那些足够旧或较大的文件? Logrotate是否有办法做到这一点?
//阅读了这篇文章,现在看起来它可能更适合于serverfault.com。随意根据需要迁移,或建议编辑。 –
可以发布到askubuntu.com也 –
什么是//,? – chepner