我有一个自定义应用程序(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时,日志不会自动旋转。任何帮助将不胜感激。
答案 0 :(得分:3)
logrotate
根据/etc/logrotate.d/
中配置的时间间隔轮换/etc/logrotate.conf
中指定的日志。在某些发行版上,默认值为一周。您可以使用例如覆盖特定配置中的时间间隔。
在logrotate
知道文件至少与指定时间一样长时,才会轮换日志文件。我假设您等了很长时间和/或修改了conf文件?
答案 1 :(得分:1)
logrotate每天只运行一次,所以它不会一直检查你的文件大小。
如果你想要一种有效的方法来保持较小的尺寸,你应该使用像
这样的cron工作例如,在crontab
中每小时强制旋转一次0 * * * * logrotate <my conf here>
如果需要,您的日志将每小时轮换一次。我的免费层aws服务器出现了这样的问题,因为大小超过了我没有足够的磁盘空间等待24小时旋转