如何为 2 月 31 日或 2 月 28/29 日配置 logrotation

how to configure logrotation for 31st of month or 28/29th day of feb

如何配置每月 31 天。目前我可以用 30 天。

/var/log/myLogs/* {
    daily
    missingok
    rotate 30
    olddir /prar/oney_logs/tomcat_m_logs/archive
    compress
    copytruncate
    postrotate
            ls /prar/oney_logs/tomcat_m_logs/GC_web_*.log |grep -v `date --date 'today' +%y%m%d`| xargs rm -f
                                                            find /prar/oney_logs/tomcat_m_logs/archive/GC_web_*.log* -mtime +30 -exec rm {} \;
    endscript
}

使用 logrotate 并不容易。您可以设置 rotate 31 以保持一个月的最大天数。然后添加一个 monthly cron 作业以每月归档文件。通过将要保留的日志数设置为 31,您可以确定至少有几个月的文件。如果该月少于 31 天,您将剩下 1 个或更多上个月的每日日志。

否则你可以: a) 通过 postrotate 脚本处理,以便为少于 31 天的月数重命名/移动文件; b) 制作一个 crontab 脚本来每月更改 logrotate 配置文件; c) 为每个月制作一个配置文件,并在 crontab 中设置 12 个条目,如下所述:Logrotate - daily log files for a month; d) 使用一些不同于 logrotate

的实用程序/程序