由于非root所有权,Logrotate不再读取符号链接配置文件

由于非root所有权,Logrotate不再读取符号链接配置文件

目前,我们正在 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
}

然后将其符号链接到/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目录中的我的文件(由 拥有),被视为错误?

或者是否有另一种推荐的方法来进行特定于应用程序的日志轮换?

(还询问了超级用户StackExchange

相关内容