Apache httpd rotatelogs:是否可以每天创建一个新文件?

时间:2012-03-14 12:45:00

标签: apache logrotate

我想每00:00:01(=每个新的一天)为我的网站制作新的日志。

rotatelogs的问题在于,您可以在创建新日志之前精确确定日志的最大大小,或者以秒为单位精确调整旋转时间。无法精确一小时轮换。

他们谈论“cronjobs”,但我不明白。有人可以解释一下是否可能,如果是的话,举个例子?

非常感谢

以下是rotatelogs实用程序的帮助:

  

/#/ opt / httpd / bin / rotatelogs --help参数数量不正确   用法:/ opt / httpd / bin / rotatelogs [-l] [-f] {|} [与UTC的偏移分钟]

     

添加:

     

TransferLog“| / opt / httpd / bin / rotatelogs / some / where 86400”

     

     

TransferLog“| / opt / httpd / bin / rotatelogs / some / where 5M”

     

到httpd.conf。生成的名称将是/some/where.nnnn,其中nnnn   日志名义上开始的系统时间(N.B.如果使用a   旋转时间,时间总是旋转的倍数   时间,所以你可以用它来同步cron脚本)。在每个结束时   旋转时间或达到文件大小时,将启动新日志。 /   #

1 个答案:

答案 0 :(得分:1)

根据manual page for rotatelogs的这一部分:

   rotationtime
          The time between log file rotations  in  seconds.  The  rotation
          occurs  at  the  beginning of this interval. For example, if the
          rotation time is 3600, the log  file  will  be  rotated  at  the
          beginning  of every hour; if the rotation time is 86400, the log
          file will be rotated every night at midnight.

设置86400作为句点将执行您想要的操作(新文件每天午夜开始)。

如果您希望“午夜”在您的本地时区而不是UTC,请使用-l选项。

需要cronjob的情况是,如果你想要一天的时间但是在午夜的不同时间。通常使用logrotate(外部apache)等更常用的工具。