#!/bin/bash
#### 「生ログ状態での保存期間」中はそのまま #### 「生ログ状態での保存期間」を超えたものは「アクセスログ保持期間」まで圧縮保存 #### 「アクセスログ保持期間」を超えたものは削除
# 生ログ状態での保存期間 LOW_DAYS=10 # アクセスログ保持期間 KEEP_DAYS=30 # アクセスログ保存ディレクトリ LOG_DIR="/var/log/XXXX/" # アクセスログファイル名フォーマット LOG_FILE="????????_access.log" # 圧縮済みアクセスログファイル名フォーマット COMP_FILE="????????_access.log.gz" #COMP_FILE="????????_access.log.bz2"
DATE=/bin/date LS=/bin/ls BASENAME=/bin/basename RM="/bin/rm -f" ECHO=/bin/echo COMP_COM="/bin/gzip -9" #COMP_COM="/usr/bin/bzip2 -z" TMP=
# 圧縮対象年月日取得 LOW_DAYS=`expr $LOW_DAYS + 1` ARCH_YMD=`$DATE --date "$LOW_DAYS days ago" +"%Y%m%d"`
# 削除対象年月日取得 KEEP_DAYS=`expr $KEEP_DAYS + 1` DEL_YMD=`$DATE --date "$KEEP_DAYS days ago" +"%Y%m%d"`
# 対象ファイル圧縮 $LS $LOG_DIR$LOG_FILE 2>/dev/null| while read LINE do TMP=`$BASENAME $LINE` TMP=`$ECHO $TMP|cut -d'_' -f1` if [ $TMP -le $ARCH_YMD ]; then $COMP_COM $LINE >/dev/null 2>&1 fi done
# 対象ファイル削除 $LS $LOG_DIR$COMP_FILE 2>/dev/null| while read LINE do TMP=`$BASENAME $LINE` TMP=`$ECHO $TMP|cut -d'_' -f1` if [ $TMP -le $DEL_YMD ]; then $RM $LINE >/dev/null 2>&1 fi done
exit 0