XREAでApacheのログを蓄積するシェルスクリプト
コストパフォーマンスに優れたレンタルサーバと言えばXREAですが、Apacheのログをサーバ上に蓄積したくなったので、それ用のシェルスクリプトを書いてみました。
XREAでは、Apacheの生ログは直近の5日間しか保存されません。たまに必要になるときがあるので、これを別のディレクトリに蓄積していこうというものです。
- storelog.sh
#!/bin/sh # ログファイルのあるディレクトリ log_dir=/virtual/ユーザ名/log/ # ログファイルを蓄積するディレクトリ stored_dir=/virtual/ユーザ名/log/stored/ cd ${log_dir} # 末尾に数字がつかないログファイルを取得(最新のログファイルのみを取得) log_files=`find *.log -iregex ".*[^0-9]\.log$" -type f` # ログファイルの日付を生成 log_date=`date -d '1 days ago' +%Y%m%d` for file in $log_files; do # ログファイル名を抽出 stored_file=`echo ${file} | sed -e 's/^\(.*\)\.log$/\1/'` # ログファイルをコピー: ログファイル -> 蓄積ディレクトリ/ログファイル名.年月日.log cp -p ${file} ${stored_dir}${stored_file}.${log_date}.log; done exit
ユーザ名とディレクトリを環境に合わせて変更後、改行コードをLFとして保存します。サーバの/virtual/ユーザ名/に転送し、stored_dirで設定したディレクトリを作成します。後は、XREAのコントロールパネルから「CRONジョブ」に「0 6 * * * storelog.sh>/dev/null 2>&1」のように設定しておけば、毎日、Apacheのログが蓄積されていきます。
XREAでは、Apacheのログは明け方にかけてローテーションされるようなので、cronジョブでは朝方の時間を指定おけば大丈夫だと思います。
たぶん、もっとスマートな方法があるに違いないと思うのですが、希望通りの動作になったのでよしとします。ファイル名を生成する方法がわからず、調べながら書いていたら時間がかかってしまいました 🙁
ローカルに保存しておきたい場合はrawbackup for XREAが便利です。毎日、ApacheのログとデータベースのダンプをZIPファイルでメール送信してくれます。
トラックバック (1)
[…] XREAでApacheのログを蓄積するシェルスクリプト – (DxD)∞ [ツッコミを入れる] ツッコミ・コメントがあればどうぞ! spam 対策で E-mail 欄は隠してあります。もし E-mail 欄が見えていても […]
コメント (0)
この記事へのコメントはまだありません。