如何为 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
的实用程序/程序
如何配置每月 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
的实用程序/程序