관리 메뉴

피터의 개발이야기

[shell] log 파일 압축하고 6개월지난 파일 지우기 본문

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
반응형
Comments