M.C.P.C.

―むり・くり―プラスコミュニケーション(更新終了)


| トップページ |

2010年9月29日 23:31

clonosplitしたapacheログを圧縮するスクリプト

このエントリーをはてなブックマークに追加 mixiチェック

Linuxでapacheのログをcronosplitで分割しているとき、たとえば

CustomLog "|/usr/sbin/cronolog /var/log/httpd/daily/%Y/%m/access_log.%Y%m%d" combined

などしているときの、月が変わったタイミングで実行すると圧縮してくれるスクリプトを作ってみたがシェルスクリプトってよくわかんないのであまりまじめに参考にしないでね。

cronosplitで、ログは /var/log/httpd/daily/2010/09 あたりに、月ごとに入っているっていう想定。

#!/bin/sh
 
SYSTEM_MONTH=`date --date '1 month ago' '+%Y/%m'`;
SYSTEM_MONTH2=`date --date '1 month ago' '+%Y%m'`;
LOG_BASEDIR='/var/log/httpd/daily'
LOG_DIR="${SYSTEM_MONTH}"
ARCHIVE="${SYSTEM_MONTH2}.tbz"
cd ${LOG_BASEDIR}
echo "ベースディレクトリ    :${LOG_BASEDIR}"
echo "Apacheログ格納ディレクトリ:${LOG_DIR}"
echo "      ↓"
echo "アーカイブファイル    :${ARCHIVE}"
 
# カレントディレクトリ内に ${LOG_DIR} ディレクトリが存在するか?
if [ ! -d ${LOG_DIR} ]; then
  echo "ディレクトリが存在しません。実行を中止します。"
  exit 1
fi
 
# tarで圧縮
tar jcvf ${ARCHIVE} ${LOG_DIR}
if [ $? -eq 1 ] ; then
  echo "tar圧縮が異常終了しました。実行を中止します。"
  exit 1
fi
echo "${LOG_BASEDIR}/${ARCHIVE} tar圧縮成功。"
exit 0

削除までしないと意味ねーんじゃねえかっていう人もいると思いますが、rmって怖いのでわざと載せない。そういうドキドキは自分て体験しろってこってす。

投稿 大野 義貴 [パソコン・インターネット] | |

トラックバック(0)

トラックバックURL: http://blog.dtpwiki.jp/MTOS/mt-tb.cgi/3359

コメントする