2017-07-10 44 views
-1

//,这个问题有点模棱两可。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是否有办法做到这一点?

+0

//阅读了这篇文章,现在看起来它可能更适合于serverfault.com。随意根据需要迁移,或建议编辑。 –

+1

可以发布到askubuntu.com也 –

+4

什么是//,? – chepner

回答

1

从“人logrotate的”

可以使用变量“tabooext”指定您希望logrotate的忽略文件扩展名。