Logrotate 无法在 CentOS 6.6 上运行

Logrotate 无法在 CentOS 6.6 上运行

我有以下配置用于对应用程序日志进行日志轮转。

/opt/tomcat/logs/app-web.txt {
    copytruncate
    daily
    size 500M
    compress
    delaycompress
    rotate 0
    missingok
    notifempty
}

/opt/tomcat/logs has a lot of files


app-web.txt
app-web.txt.1
app-web.txt.2
app-web.txt.3
app-web.txt.4
..
..
..
..
..
app-web.txt.100

我已将配置放在 /etc/logrotate.d/app-web 中。我正在运行 CentOs 6.6

我只想有 9 个文件,例如 aap-web.txt 和 app-web.txt.1.gz 到 app-web.txt.9.gz

/opt/tomcat/logs 里面的每个文件大小为 498 M,每 1 小时 30 分钟创建一次。

 $cat /var/lib/logrotate.status 

显示我手动运行的时间。它不会通过 cron 自动运行。

答案1

rotate 0

来自手册页

旋转计数 日志文件会轮换 count 次,然后才会被移除或邮寄到 mail 命令中指定的地址。如果 count 为 0,则会移除旧版本,而不会轮换。

你可能想要

rotate 9

至于为什么你会看到所有其他文件,我猜是它们很旧(检查日期/时间)并且 logrotate 没有考虑它们,因为它们与名称不匹配应用程序-web.txt。我只需将相关时间段内需要的文件存档,然后删除它们。然后我希望 logrotate 能够按预期开始管理文件。

请注意,通常 cron 配置为每天仅运行一次 logrotate ( /etc/cron.dailylogrotate)。如果您想根据大小轮换文件,并且达到该大小的频率超过每天一次,则需要更频繁地运行 logrotate。

相关内容