Log File 관리 Script

|
#!/bin/ksh
DATE=`date +%Y%m%d`
LOG_DIR="$2"
LOGFILE_NAME="$1"
BACK_LOG_DIR="$3"

# KB단위 (현재 1MB로 설정)

THRESHOLD=`ls -al ${LOG_DIR} | grep ${LOGFILE_NAME} | head -1 | awk '{ print $5 }'`
DATE_TIME=`date +%Y-%m-%d" "%H:%M:%S`
i=2
size=1024000
if [ $THRESHOLD -gt $size ]
then
    while [ i -gt 0 ]
    do
        if [ ! -s ${BACK_LOG_DIR}${LOGFILE_NAME}.0 ]
        then
            cp -p ${LOG_DIR}${LOGFILE_NAME} ${BACK_LOG_DIR}${LOGFILE_NAME}.0
            echo "==============================================================" >> ${BACK_LOG_DIR}${DATE}.log
            echo "$DATE_TIME cp -p $LOG_DIR$LOGFILE_NAME $BACK_LOG_DIR$LOGFILE_NAME.0 완료"  >> ${BACK_LOG_DIR}${DATE}.log
            echo "$DATE_TIME 원본 로그파일용량을 0으로 하였습니다. Not Ex" >> ${BACK_LOG_DIR}${DATE}.log
        else
            if [ ! i -eq 1 ]
            then
                cp -p ${BACK_LOG_DIR}${LOGFILE_NAME}.`expr "$i" "-" "2"` ${BACK_LOG_DIR}${LOGFILE_NAME}.`expr "$i" "-" "1"`
                chmod 666 ${BACK_LOG_DIR}${LOGFILE_NAME}.`expr "$i" "-" "1"`
                echo "==============================================================" >> ${BACK_LOG_DIR}${DATE}.log
                echo "$DATE_TIME cp -p ${BACK_LOG_DIR}${LOGFILE_NAME}.`expr "2" "-" "2"` ${BACK_LOG_DIR}${LOGFILE_NAME}.`expr "2" "-" "1"` 완료" >> ${BACK_LOG_DIR}${DATE}.log
            fi
        fi
        let i=i-1
    done

    if [ -s ${BACK_LOG_DIR}${LOGFILE_NAME}.0 ]
    then
        cp -p ${LOG_DIR}${LOGFILE_NAME} ${BACK_LOG_DIR}${LOGFILE_NAME}.0
        cat /dev/null > ${LOG_DIR}${LOGFILE_NAME}
        echo "==============================================================" >> ${BACK_LOG_DIR}${DATE}.log
        echo "$DATE_TIME cp -p $LOG_DIR$LOGFILE_NAME $BACK_LOG_DIR$LOGFILE_NAME.0 완료"  >> ${BACK_LOG_DIR}${DATE}.log
        echo "$DATE_TIME원본 로그파일용량을 0으로 하였습니다." >> ${BACK_LOG_DIR}${DATE}.log
    fi
fi

logic순서
원본 file의 용량이 1M인지 확인
1M일경우 원본.0의 이름으로 복사후 원본 size를 0으로 만든다.
이런 방법으로 원본 file 포함 3개의 file로 관리 한다.

And