【问题标题】:Does logrotate remove .gz files? That is, does logrotate with a * path rotate an existing .gz file?logrotate 会删除 .gz 文件吗?也就是说,使用 * 路径的 logrotate 是否会旋转现有的 .gz 文件?
【发布时间】:2017-12-14 16:42:23
【问题描述】:

// ,这个问题有点模棱两可。

这是场景:

我有以下三个扩展名的日志,但我目前的规则仅适用于 *.log 文件:

.1
.log
.txt

另外,由于 Tomcat 正在轮换日志,所以我有以下内容:

.gz

我想旋转所有这些文件,但我不想最终得到任何 .gz.gz 文件。我该怎么做?

Tomcat 的 Logrotate 规则

目前,我对 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 相同的方式重新压缩或处理.gz 文件和.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 onlinefound some results。 askubuntu.com 的答案最接近,但我仍然不确定 logrotate 是否会“旋转”由另一个服务(如 Tomcat)创建的 .gz 文件。

当在 logrotate 路径中使用 * globbing 时,这些结果中没有任何内容回答有关由另一个服务(例如 Tomcat)创建的预先存在的 .gz 文件的具体问题。

现在我只是用多个路径/规则来解决这个问题:https://v.gd/yNfAAu

但我很好奇。什么脚本行为可以智能地使logrotate 忽略现有的.gz 文件,或者以不同的方式处理它们,同时仍然删除那些足够旧或足够大的文件? Logrotate 是否已经有办法做到这一点?

【问题讨论】:

  • // ,现在阅读这个,看起来它可能更适合 serverfault.com。根据需要随意迁移,或提出修改建议。
  • 也可以发布到 askubuntu.com
  • // 是怎么回事?

标签: linux bash tomcat logrotate glob


【解决方案1】:

来自“man logrotate”

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

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2014-11-24
    • 2019-10-24
    • 2021-06-13
    • 2018-04-27
    • 2015-03-21
    • 2019-06-16
    • 2017-02-15
    • 2012-05-31
    相关资源
    最近更新 更多