Logrotate は、root 以外の所有権のため、シンボリックリンク構成ファイルを読み取らなくなりました。

Logrotate は、root 以外の所有権のため、シンボリックリンク構成ファイルを読み取らなくなりました。

現在、Ruby on RailsアプリケーションサーバーでUbuntu 12.04 LTSを14.04 LTSにアップグレードしており、ログファイルが循環しなくなったことを確認しています。

/var/app-name/config/logrotatedeployer両方のシステムには、次の有効なlogrotateファイルを含むunixユーザー所有のファイルがあります。

/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)

ベストアンサー1

おすすめ記事