작성일자 : 2020.09.12
환경 : CentOS, BASH Shell, Crontab
목표 :
특정 경로의 생성된지 일정기간 이상 지난 파일(로그)들을 자동으로 삭제
시나리오 :
위의 목표를 수행하는 쉘 스크립트 생성해 데일리로 수행하도록 크론탭에 등록
1. 스크립트 작성
- deleteExpireFile.sh
#!/bin/bash # ---------- Custom Config Option ---------- path="/myPath/myLogDirectory" # -----------------------------------------------
echo "End deleteExpireFile.sh" |
* find /path/* : /path 아래 모든 파일 검색
* -type f : 디렉토리는 제외하고 파일 타입만 검색하는 옵션
* -mtime +30 : 서버 시간 기준으로부터 생성된지 30*24 시간 이상된 파일/디렉토리 검색하는 옵션
* find ... -exec ... {} : find 의 결과에 특정 명령을 수행 ( {} 에 결과값이 들어감 )
2. crontab 설정
- 크론탭 추가 명령어 입력 ( 확인 명령어 : crontab -l )
> crontab -e |
- 매일 0 시 0 분 deleteExpireFile.sh 실행하도록 설정
0 0 * * * /scriptPath/deleteExpireFile.sh |
* crontab 로그는 /var/log/cron 에서 확인 가능
------
+ 스크립트 작성 없이, crontab에 직접 스크립트 내용을 넣어도 된다.
ex) 0 0 * * * find /myPath/* -type -f -mtime +30 -exec rm -f {} \;
'Linux' 카테고리의 다른 글
[Linux] Apache, Tomcat 연동 (mod_proxy 사용) (0) | 2018.09.16 |
---|---|
[Linux] 계정 별 JDK 설정 (4) | 2018.09.16 |
[Linux] telnet 사용 (0) | 2018.09.16 |
[Linux] Node.js 설치 (0) | 2018.09.16 |
[Linux] MongoDB 설치 (0) | 2018.09.16 |