如何配置每月31日或28日/ 29日的日志转换

时间:2017-01-08 16:34:13

标签: logrotate

如何配置每月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
}

1 个答案:

答案 0 :(得分:0)

使用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