在logrotate ext中使用时间和日期?

时间:2015-02-27 10:05:07

标签: linux system-administration logrotate

我需要使用时间和日期作为旋转日志的扩展。现在我正在使用dateext。但dateext的问题是我无法在同一日期/日期间多次实现轮换。而且我必须按小时进行轮换,我已经为此创建了cronjob。

这是我的conf文件。

someDirectory/logs/*.log /someDirectory/logs/*.log {
nocompress
notifempty
copytruncate
size 100M
dateext
olddir someDirectory/logs/archived
rotate 10

}

请告诉我,如果有的话,我如何在延期中使用时间和日期? 感谢。

2 个答案:

答案 0 :(得分:3)

您可以使用以下的postrotate脚本:

   someDirectory/logs/*.log /someDirectory/logs/*.log {
   nocompress
   notifempty
   copytruncate
   size 100M
   dateext
   olddir someDirectory/logs/archived
   rotate 10
   sharedscripts
   postrotate
        day=$(date +%Y%m%d)
        daytime=$(date +%Y%m%d-%H:%M:%S)
        mv somelog-$day /var/log/somelog-$daytime
   endscript
  }

答案 1 :(得分:0)

已阅读logrotate dateformat seems not supporting %H:%M:%S对%H:%M:%S的logrotate支持(尽管在我最喜欢的Linux发行版中还没有)。

如果您的系统尚不支持此功能,并且您只需要一些其他信息即可区分每小时可以使用的存档文件

dateformat -%Y%m%d-%s

或在其他答案中需要澄清的顺序编号的日志中,如何使somelog成为变量。