ログのバックアップを学んだのでメモ。
目的
Railsでアプリを作っているが、放置しておくとproduction.logがたまっていく。なので、1日毎にバックアップをとって、ログファイルが大きくならないようにする。
方法
バックアップ用のシェルスクリプト書いて、cronで回す
スクリプト
バックアップ用のディレクトリ(log_archive)がなかったら作成する。そして、アプリケーションのログファイルがあるディレクトリに移動。ログをバックアップして圧縮。最後に今のログファイルを空に戻す。(>でファイルが空になる)
スクリプトファイルに実行権限を与えるのを忘れずに。
- log_backup.sh
#! /bin/sh cd /var/app/myapp//log if [ ! -e "log_archive" ]; then mkdir log_archive fi cp production.log log_archive/production_log_`date +%Y%m%d`.log gzip log_archive/production_log_`date +%Y%m%d`.log > production.log
cron設定
エラーした用にメールの設定もしておく。
MAILTO="hoge@pc.com,hoge@mobile.ne.jp" 59 23 * * * /var/app/myapp/trunk/log/log_manager.sh