IT/WEBWAS
간편 Log rotation 처리 스크립트_bash
동구멍폴로
2022. 10. 3. 20:24
반응형
특정 파일에 계속해서 로그를 쌓는 경우, 일정한 시점에 log를 백업 및 rotation 시켜주는 것이 필요하다.
로그 파일을 mv 명령어를 사용해 옮기는 경우는, 실제 프로그램에서 대상 로그 파일이 없어진 것으로 인식해 오류를 발생시킬 수도 있어, 다음의 방법을 소개한다.
아래의 bash shell script 를 통해 로그를 복사 후 압축하고 초기화 시킨다.
매일매일 백업을 수행하는 경우 간단하게 crontab 을 등록해 매일 00시 혹은 01시 경에 로테이션 되도록 설정한다.
(*단, 해당 스크립트는 간단하게 파일을 복사한 뒤 압축하는 내용이므로, 복사할 만큼의 용량은 필요하다.
파일시스템 용량 확보에 주의한다.)
스크립트는 다음과 같다.
vi rotatelog.sh
---- 아래 스크립트 내용 입력 후 :wq! ----
chmod 750 rotatelog.sh
TODAY_DATE=`date "+%Y%m%d"`
cp -p /logs/now.log /logs/backup_${TODAY_DATE}.log
cat /dev/null > /logs/now.log
gzip /logs/backup_${TODAY_DATE}.log
(rotatelog.sh : /logs 하위에 위치, /logs 하위의 now.log를 backup_압축일자.log.gz 으로 압축하고 초기화 하는 내용의 스크립트임.)
crontab 은 다음과 같이 설정한다. (매일 1시에 로테이션 스크립트 수행)
00 01 * * * /logs/rotatelog.sh
반응형