//,这个问题有点含糊不清。
以下是该方案:
我的日志包含以下三个扩展名,但我当前的规则仅适用于* .log文件:
.1
.log
.txt
另外,因为Tomcat正在旋转日志,所以我有以下内容:
.gz
我想要旋转所有这些文件,但我不想最终使用任何.gz.gz文件。我该怎么做?
目前,我对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/*
,但我想知道是否会以相同方式重新压缩或处理.gz
文件作为.log
和.txt
文件。
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,found some results。 askubuntu.com的回答最接近,但我仍然不确定logrotate
是否会“轮换”由其他服务(如Tomcat)创建的.gz
文件。
当在logrotate路径中使用*
globbing时,这些结果中的任何内容都没有回答关于由另一个服务(例如Tomcat)创建的预先存在的.gz文件的特定问题。
现在我只是用多个路径/规则来解决这个问题:https://v.gd/yNfAAu
但我很好奇。什么脚本行为智能地使logrotate
忽略现有的.gz
文件,或以不同方式处理它们,同时仍然删除那些足够大或大的文件? Logrotate有办法做到这一点吗?
答案 0 :(得分:1)
来自" man logrotate"
您可以使用变量" tabooext"指定您希望logrotate忽略的文件扩展名。