Linux/Shell Script
[shell] log 파일 압축하고 6개월지난 파일 지우기
기록하는 백앤드개발자
2022. 5. 14. 22:59
반응형
ㅁ 개요
ㅇ 기준 폴더의 개별 폴더들의 로그를 정리하는 쉘스크립트이다.
ㅇ 3일 지난 파일을 압축
ㅇ 180일 지난 압축파일 삭제
#!/bin/sh
# 기준 폴더
LOG_PATH=/logs
# 기준 폴더 안의 개별 폴더 목록
SVC_TYPE_ARRAY=("acs" "abccard")
# 로그정리 정리 로그(최근 로그만 남김)
LOG_FILE=${LOG_PATH}/log_clean.out
DAY=$(date +%Y-%m-%d --date '3 days ago')
date > $LOG_FILE
for svcType in "${SVC_TYPE_ARRAY[@]}"
do
# log zip
tar -czvf $LOG_PATH/$svcType/$svcType.$DAY.tar.gz $LOG_PATH/$svcType/*$DAY*.log >> $LOG_FILE
rm -f $LOG_PATH/$svcType/*$DAY*.log
echo $svcType' done' >> $LOG_FILE
# old file delete, 180일 지난 파일은 삭제한다.
for i in $(find $LOG_PATH/$svcType -name "*.tar.gz" -mtime +180)
do
FILE=`echo ${i}`
echo $FILE >> $LOG_FILE
rm -f ${FILE}
echo $svcType' rm done' >> $LOG_FILE
done
done
반응형