#!/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로 관리 한다.
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로 관리 한다.