我们目前正在 ruby on rails 应用程序服务器上从 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
}
Run Code Online (Sandbox Code Playgroud)
然后将其符号链接到/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).
Run Code Online (Sandbox Code Playgroud)
在代码中追踪这一点,似乎为 3.8.x 发布流添加了此更改:https : //github.com/demands/logrotate/commit/b8ce386a969c60e5c8ee78023c24a1ba0aab1526
如果我更改文件的所有权符号链接到/var/app-name/config/logrotate到root那么它再次开始工作。但是鉴于此文件是我的应用程序的一部分,并且由我们在此状态下使用的 …