Rails 3アプリを本番環境で使用していますが、本番環境のログは膨大です。これを安全に削除して、Railsが別のものを生成できるようにすることはできますか?Railsアプリを再起動するか、再デプロイする必要がありますか?Production.logに触れる必要がありますか?
これは300mbのサイズで、殺したいです。
Rails 3アプリを本番環境で使用していますが、本番環境のログは膨大です。これを安全に削除して、Railsが別のものを生成できるようにすることはできますか?Railsアプリを再起動するか、再デプロイする必要がありますか?Production.logに触れる必要がありますか?
これは300mbのサイズで、殺したいです。
いつでもgemをgemファイルに追加します
gem "whenever", "~> 0.7.2", require: false
これを行うためのいつでもタスクを作成します
たとえばwheneverize
、Railsアプリでcommandanadを実行すると、configディレクトリにschedule.rbファイルが作成され、次のようにタスクを追加できます
every 1.day, :at => '4:30 am' do
rake "log:clear"
end
capistrano を使用してデプロイする場合は、これを deploy.rb に追加します。
set :whenever_command, "bundle exec whenever"
これはいつでも自動的に設定されます。
/home/deploy/appname/current/log/*.log {
daily
missingok
rotate 7
compress
delaycompress
notifempty
copytruncate
}
上記の構成で logrotate を使用すると、うまく機能しています。
アプリケーションを恐れることなく、いつでもログを削除できます。理想的には、ログが大きくなりすぎないようにログをローテーションする必要があります。logrotate を使用してこれを行うことができます。ubuntu の場合、次のようになります (この質問から取得):
/path/to/rails.example.com/tmp/log/*.log {
weekly
missingok
rotate 52
compress
delaycompress
notifempty
create 640 root adm
copytruncate
}