'Open Source/Unix'에 해당되는 글 19건
- 2009.06.20 find 명령어로 원하는 file 일제 정리~!
- 2009.06.20 Log File 관리 Script
- 2009.06.20 SMF 실행 shell script
find 경로 -name 파일패턴 -exec rm -rf {} \;
오브젝트 파일이나
oracle proc로 컴파일 이후 나온 lis file
core file을 일제적으로 정리 할때 좋다..
오브젝트 파일이나
oracle proc로 컴파일 이후 나온 lis file
core file을 일제적으로 정리 할때 좋다..
#!/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로 관리 한다.
(oracle DataBase와 관련되어 실행 된다면 해당 값을 script에 포함한다. strat하기 전에 해당 값을 설정)
열쉬미 coding해 놓고 실행안된다고 징징거리지 말고 실행권한 확인~!
chmod 755 scirpt이름
!!!!