Ubuntuでアプリケーションログを回転させる方法は?

Ubuntuでアプリケーションログを回転させる方法は?

Ubuntu Linux 14.04を使用していますが、ログの回転に問題があります。このファイルがあります。

rails@myapp:~$ ls -al myapp/log/production.log
-rw-r--r-- 1 rails rails 4522482443 Jun  5 12:11 myapp/log/production.log

私の/etc/logrotate.confファイルにこの内容があります。

/home/rails/myapp/log {
        daily
        rotate 4
        compress
        delaycompress
        missingok
        notifempty
        create 644 root root
}

しかし、私のログは決して回転しません。これは、「myapp/log/Production.log」ファイルで5月8日のエントリを見ることができてわかります。ログは毎日大きくなっています。ログを交換するにはどうすればよいですか?

ベストアンサー1

まず、logrotateが自動的に実行されない可能性があります(通常はcronデーモンを介して)。

次に、/home/rails/myapp/log ファイルを回転させる logrotate 構成ファイルを指定しましたが、ls 出力には /home/rails/myapp/log/production.log ファイルが表示されます (私は ~rails -> /home/railsまた、所有者がroot:rootの新しい空のログファイルを生成するようにlogrotateに要求しましたが、ls出力では、ソースファイルはRails:railsの属性です。

tl;dr;代わりにこの設定ファイルを使用してください(そして時々cronまたは同様の方法でlogrotateが実行されていることを確認してください)。

/home/rails/myapp/log/production.log {
        daily
        rotate 4
        compress
        delaycompress
        missingok
        notifempty
        create 644 rails rails
}

また、回転したファイルを指すファイル記述子への書き込みを強制的に停止するには、postrotateを使用してアプリケーションを再起動する必要があります。

おすすめ記事