ログのバックアップの設定

ログのバックアップを学んだのでメモ。

目的

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