catalina.out 파일이 용량이 너무 많이 쌓이고, 에러 발생시 제대로 확인이 안되어 catalina 로그와 관련되어 로그 쉘 스크립트를 생성하기로 했다.
## 테스트 환경
- vmware centos 7
- 톰캣: 8.5.51
- openjdk: 1.8.0_262
1. bash 쉘 스크립트 등록
#!/bin/bash
logPath=/home/admin/apache-tomcat-8.5.51/logs/
logFile=catalina.out
backuplogPath=$logPath"catalina_backup/"
backupdate=$(date "+%Y%m%d")
backupFile=$logFile"_"$backupdate
if [ ! -d $backuplogPath ]; then
mkdir $backuplogPath
chown -R gcti:ebaykosys $backuplogPath
fi
cp $logPath$logFile $backuplogPath$backupFile
cat /dev/null > $logPath$logFile
cd $backuplogPath
tar -cvf $backupFile.tar $backupFile
chown gcti:ebaykosys $backupFile.tar
chmod 777 $backupFile.tar
rm -rf $backuplogPath$backupFile
find $backuplogPath -mtime +90 -name 'catalina*' -exec rm -rf '{}' \;
<초기>
#!/bin/bash
logPath=/home/admin/apache-tomcat-8.5.51/logs/
logFile=catalina.out
backuplogPath=$logPath"catalina_backup/"
backupdate=$(date "+%Y%m%d")
backupFile=$logFile"_"$backupdate
if [ ! -d $backuplogPath ]; then
mkdir $backuplogPath
fi
cp $logPath$logFile $backuplogPath$backupFile
cat /dev/null > $logPath$logFile
cd $backuplogPath
tar -cvf $backupFile.tar $backupFile
rm -rf $backuplogPath$backupFile
find $backuplogPath -mtime +90 -name 'catalina*' -exec rm -rf '{}' \;
1. 톰캣 설치 경로(여기서는 logPath) 의 logFile 명을 변수 처리 해준다. 톰캣 설치 경로 하위의 logs 폴더에 catalina_backup 폴더를 생성한 뒤 이 폴더에 catalina 관련 로그들을 백업 할 예정이다.
2. catalina_backup 폴더가 존재하는지 확인한 뒤, 존재 하지 않으면 mkdir 명령어로 catalina_backup 폴더를 생성한다.
3. 톰캣 설치 경로 하위의 logs 폴더에 있는 catalina.out 로그 파일을 catalina_backup 폴더 하위에 복사 한 뒤, 해당 catalina.out 파일을 초기화 해준다. 이때 톰캣 재부팅을 하지 않고도 초기화 해주기 위해 /dev/null 명령어를 이용한다.
4. 이후 catalina_backup 폴더로 이동해서
5. tar로 압축한다. 그리고 파일은 삭제.
6. 이후 catalina_backup 폴더에 있는 파일들 중에 생성한 지 90일이 지난 파일이 있으면 삭제해준다.
7. bash shell 등록 이후 해당 파일의 권한을 755로 변경해준다.

2. crontab 등록
매일 자동으로 등록해주기 위해 crontab 으로 등록해준다.
crontab -e 명령어를 이용한다.
00 04 * * * /home/admin/apache-tomcat-8.5.51/bin/logShell.sh > /dev/null 2>&1

< 결과 >
현재 시간

1. catalina.out 로그 생성 -> 서버 재구동
톰캣 설치경로\bin\startup.sh
톰캣 설치경로\bin\shutdown.sh
2. 톰캣 설치경로\bin\logShell.sh 실행 후 catalina_backup 폴더에 catalina_해당날짜 로그가 생겼는지 확인

3. 90일이 지나면 지워지는지 확인
-> 날짜 바꿔서 1~2 실행
- 2023-12-31 03:59로 날짜 변경 뒤 04시가 되니 아래처럼 90일이 지난 파일들은 지워졌다.

'업무' 카테고리의 다른 글
| [톰캣7] SSL 인증서 변경 (0) | 2023.09.14 |
|---|---|
| [STS4] Java compiler level does not match the version of the installed Java project facet. (해결완) (0) | 2023.08.31 |
| [STS4] 프로젝트 활성/비활성화 (Open Project / Close Project) (0) | 2023.08.28 |
| [ms-sql]varchar 데이터 형식을 datetime 데이터 형식으로 변환하는 중 값 범위를 벗어났습니다. (0) | 2023.08.17 |