-Crontab이란
Windows의 스케줄러와 비슷한 것으로 "특정 시간에 특정 작업을 하게 하는것"
/etc/crontab 파일에 설정된 내용을 읽어서 작업을 수행한다.
-크론탭 생성 및 편집
$crontab -e |
-현재 크론탭에 있는 내용 확인
$crontab -l |
-크론탭 삭제
$crontab -r |
-크론탭 주기 결정
* * * * * 분(0-59) 시간(0-23) 일(1-31) 월(1-12) 요일(0-7) 요일에서 1 :월요일 / 2 : 화요일 / 3 : 수요일 / 4 : 목요일 / 5 :금요일 / 6: 토요일 / 0,7 : 일요일 의미. |
-크론탭 예제
(1) 매분실행 * * * * * /test.sh
(2) 특정 시간 실행 45 5 * * 5 /test.sh 매주 금요일 5시 45분에 실행
(3) 반복실행 0,20,40 * * * * /test.sh ',' 로 반복실행을 정의한다. 매일 매시간 0분,20분,40분에 실행
(4) 범위실행 0-30 1 * * * /test.sh 매일 1시 0분~30분까지 매분 실행
(5) 간격실행 */10 * * * * /test.sh 매일 10분마다 실행 |
1. 주기를 설정하는 방법엔 * , - / 등을 사용합니다.
특수기호에 따라 의미하는 바가 다르기 때문에 원하는 설정에 맞게 사용하면 됩니다.
2. 크론탭은 한줄에 하나의 명령만 사용됩니다.
ex) 잘된 예 : * * * * /test.sh
잘못된 예 : * * * *
test.sh
-크론탭 로깅
Crontab으로 정기적으로 작업을 처리하는건 ok.
그 다음 로그를 남기기 위해서는 다음과 같이 사용할 수 있습니다.
* * * * /test.sh > /log/test.sh.log 2>&1 |
매분 실행되는 test.sh의 로그가 test.sh.log에 '갱신'된다는 설정.
2>&1 을 제거하면 표준출력 내용만 나오게 됨.
* * * * /test.sh >> /log/test.sh.log 2>&1 |
다음은 로그갱신이 아닌 로그'누적'에 대한 설정으로 '>>' 를 사용하면 로그가 누적이 되는걸 확인할 수 있다.
다만 로그가 과하게 쌓이면 리눅스 퍼포먼스에 영향을 주므로 파일을 비워주거나 하는 작업이 필요하다
크론탭 백업
crontab -l > /crontab_lnfo.txt |
.
.
SpringBoot Scheduler Cron
스프링부트에서 사용하는 Cron은 6자리로 이루어져 있다.
* * * * * * 초 분(0-59) 시간(0-23) 일(1-31) 월(1-12) 요일(0-7)
요일에서 1 :월요일 / 2 : 화요일 / 3 : 수요일 / 4 : 목요일 / 5 :금요일 / 6: 토요일 / 0,7 : 일요일 의미. |
크론탭 예
(1) 매 10초마다 실행 */10 * * * * *
(2) 매일 8,9,10 시에 실행 * * 8-10 * * *
(3) 매일 오전6시 오후7시에 실행 * * 6,19 * * *
(4) 매일 8시,8시 30분 실행 * 0/30 8 * * *
|
'Tip & Tech > Tech' 카테고리의 다른 글
ELK match와 term 차이 / query와 filter 차이 (0) | 2024.09.25 |
---|---|
SSL 인증서 체이닝 이슈 ( Nginx 체인인증서 만드는 방법 ) (2) | 2021.02.03 |
JSESSION ID 바뀌는 현상 / jcaptcha 404 / change session / 세션유지 / session null 현상 (0) | 2020.04.29 |
HTTP 와 HTTPS의 장단점 / 공개키암호화방식 / 인증기관(CA)이란? (0) | 2020.02.24 |
해시(Hash)와 암호화(Encryption)의 차이점 / Hash종류 / Hash사용이유 (0) | 2020.01.03 |