基于日志大小,Logrotate不会自动旋转

时间:2011-06-30 19:47:41

标签: logrotate

我有一个自定义应用程序(myApp),它将日志写入文件'/ var / log / myApp'。我可以看到正在编写的日志,它工作正常。现在我正在尝试为此文件设置logrotate,为此我创建了一个配置文件'/etc/logrotate.d/myApp',其内容为 -

/var/log/myApp {
   missingok
   size +10k
   start 0
   nocompress
   create 0600 root root
   rotate 10
   postrotate
     /etc/init.d/rsyslog restart > /dev/null 2>&1 || true
   endscript
}

现在如果我做logrotate -dv /etc/logrotate.d/myApp我没有看到任何错误,并且当执行logrotate -f /etc/logrotate.d/myApp时,即强制logrotate旋转日志。但是当日志文件大小超过10k时,日志不会自动旋转。任何帮助将不胜感激。

2 个答案:

答案 0 :(得分:3)

logrotate根据/etc/logrotate.d/中配置的时间间隔轮换/etc/logrotate.conf中指定的日志。在某些发行版上,默认值为一周。您可以使用例如覆盖特定配置中的时间间隔。 中的“每日”。

logrotate知道文件至少与指定时间一样长时,才会轮换日志文件。我假设您等了很长时间和/或修改了conf文件?

答案 1 :(得分:1)

logrotate每天只运行一次,所以它不会一直检查你的文件大小。

如果你想要一种有效的方法来保持较小的尺寸,你应该使用像

这样的cron工作

例如,在crontab

中每小时强制旋转一次
0 * * * * logrotate <my conf here> 

如果需要,您的日志将每小时轮换一次。我的免费层aws服务器出现了这样的问题,因为大小超过了我没有足够的磁盘空间等待24小时旋转