目前,我们正在Rails应用程序服务器上的ruby上从Ubuntu 12.04 LTS升级到14.04 LTS,并注意到日志文件不再旋转。
在两台机器上,我们都有一个/var/app-name/config/logrotate
由unix用户拥有的文件,deployer
其中包含有效的logrotate文件,如下所示:
/var/app-name/log/*.log {
daily
rotate 365
delaycompress
compress
dateext
dateformat -%Y%m%d
missingok
copytruncate
}
然后将其符号链接到/etc/logrotate.d/
目录中,如下所示:app-name
在我们的Ubuntu 12.04服务器上,我们有logrotate 3.7.8,它运行得很好。它进入var/app-name/log/
目录并轮换出所有日志文件
但是在Ubuntu 14.04服务器上,我们有logrotate 3.8.7,它不会轮换我们应用程序的日志文件。
当我通过调试时,sudo logrotate -d -f /etc/logrotate/.conf
得到以下输出:
Ignoring /etc/logrotate.d/app-name because the file owner is wrong (should be root).
在代码中追逐它,似乎为3.8.x发布流添加了此更改:https : //github.com/demands/logrotate/commit/b8ce386a969c60e5c8ee78023c24a1ba0aab1526
如果我更改文件的所有权符号链接到/var/app-name/config/logrotate
到root
那么它再次开始工作。但是鉴于此文件是我的应用程序的一部分,并且是由我们在这种状态下使用的capistrano部署框架创建的,因此当它过去可以正常工作时,我宁愿不必更改其所有权。
那么logrotate是否推荐/支持符号链接的配置文件?
如果是这样,是否应该拒绝使用deployer
符号链接到/etc/logrotate.d
目录中的我的文件(由拥有),被视为错误?
还是有针对特定应用程序日志轮换的另一种推荐方法?
(也在Unix StackExchange上问到)