본문 바로가기
킷도우의 IT/리눅스(Linux)

[실무 경험담] 리눅스 크론탭 ( linux crontab ) 활용하여 로그 삭제 하기

by 킷도우 2022. 12. 15.
반응형

안녕하세요. IT Window, 킷도우입니다.

오늘 새벽 2022 카타르 월드컵 준결승전 프랑스가 모로코를 2대 0으로 제압하면서 이변은 없었습니다.

12/19일 00시 아르헨티나 VS 프랑스의 경기가 아주 기대 되는대요.

메시가 월드컵 트로피까지 들어 올리게 될지.... 기대 되네요 ㅎㅎ

 

오늘도 IT를 공부하시는 여러분들에게 도움 되는 글을 가져 왔습니다.

바로 리눅스 크론탭( linux crontab )을 활용하여 로그를 삭제하는 것입니다.

 

어느 날 시스템을 운영하던 중 WAS 서버에서 디스크 용량이 90%를 찾다는 문자를 받고 깜짝 놀랐습니다. 당장 WAS서버로 들어가 원인 분석을 했는데요.

 

꿀팁) 리눅스 파일 시스템 디스크 용량 확인하는 방법

df -h

아니나 다를까. 역시나 log파일을 저장하는 디렉토리가 90% 이상 용량을 차지하고 있었습니다.

이럴 때 적용하는 것이 바로 리눅스 크론탭( linux crontab )이죠?

일정한 주기로 무언가 작업 수행을 해야할 때 우리는 리눅스 크론탭( linux crontab )을  사용합니다.

저는 바로 현업 담당자와 협의하여 근 1개월 log만 남기는 것으로 쇼부를 보고 작업을 시작 했습니다.

 


1. Find 명령어를 활용하여 리눅스 크론탭에 등록할 로그 파일을 찾고 삭제하는 명령어 만들기

find /was/logs/로그 파일이 저장된 FULL 경로 -mtime +31 -name JeusServer_* -exec rm {};
# find 명령어 옵션 설명
# -mtime 옵션 : 파일의 내용이 바뀐 시점으로 검색(로그 파일은 누가 수정하지 않으므로 mtime으로 해도 무방)
#              즉 여기선 수정된지 31일 이상된 파일을 찾는 것임
# -name  옵션 : 이름으로 파일 검색 * 문자는 모든 파일을 찾는 것임
# -exec  옵션 : find 명령어로 찾은 결과에 대해 명령어를 추가로 실행시키는 옵션. 여기선 rm(삭제) 수행.

2. 크론탭에 등록할 쉘 파일 생성

vi del_log.sh

3. 쉘 스크립트 내용을 작성

#!/bin/sh
# 쉘 스크립트에서 * 문자, ; 문자를 쓰고 싶은 경우 문자 앞에 역슬래시(\)를 붙여야 인식됨
find /was/logs/로그 파일을 저장하는 FULL경로 +31 -name JeusServer_\* -exec rm {} \;

4. CROND(크론탭을 실행시키는 서비스, 데몬)가 이 sh 스크립트를 실행 시킬 수 이도록 실행 권한을 부여하겠습니다.

chmod 755 test.sh
# user에겐 읽기, 쓰기, 실행권한 부여
# group에겐 읽기, 실행권한 부여
# other에겐 읽기, 실행권한 부여

이제 이렇게 만든 쉘 파일을 리눅스 크론탭( linux crontab )에 등록해 주겠습니다.


5. 루트 계정으로 전환!

크론탭 리스트 등록을 위해 root 권한이 필요함

su -

6. 크론탭 리스트 등록

아래 명령어를 수행하면 크롭탭을 등록할 수 있도록 편집창이 하나 나옵니다. VI 편집하듯 편집하면 됩니다.

crontab -e

 


7. CROND(크론탭을 실행시키는 서비스, 데몬)가 특정 시간에 del_log.sh파일을 실행하도록 아래와 같이 편집합니다.

0 0 * * * /was/logs/del_log.sh파일을 만든 경로/del_log.sh
# 매일 0시 0분에 sh파일을 실행한다.
# 5 10 * * * : 매일 10시 5분에 수행.
# 5 * * * * : 매시 5분마다 수행.
# * * * * * : 1분에 한 번 수행.
# 5 10 1 * * : 매달 1일 새벽 10시 5분에 수행.
# */5 * * * * : 5분마다 수행.
# 0 */10 * * * : 10시간마다 수행.
# 0 10 * * 0,3 : 매주 일요일과 수요일 10시에 수행.

VI 편집과 동일하게 해주면 되고 저장할 때 역시 VI편집과 마찬가지로 :wq! 입력


8. 리눅스 크론탭 서비스 재시작

service crond start

네 이렇게 하고 다음 날 출근하여 정상적으로 로그 파일들이 삭제 됐는지 확인해 주시면 되겠습니다.

 

이상으로 리눅스 크론탭 ( linux crontab )에 로그 삭제하는 쉘을 등록하여 로그 파일을 관리하는 방법을 알아 봤습니다. 작은 도움 되셨길 바라면서 다음 시간에 더 좋은 글로 찾아 뵙겠습니다. 

 

감사합니다!

반응형

댓글