https://ko.wikipedia.org/wiki/Cron
cron은 유닉스 계열 운영체제의 시간 기반 잡 스케줄러이다. 과거부터 시간 기반 스케줄링을 수행할 때 자주 사용한 유틸리티 프로그램으로, 일정 시간마다 정해진 동작을 수행해야 하는 배치 프로그램을 구현할 때 많이 사용한다.
이렇다 보니 많은 배치 스케줄러들이 cron을 직접 사용하지는 않더라도 일종의 표준처럼 해당 유틸의 시간 표현 방식을 동일하게 사용하는 경우가 많다. 크론 식은 다음 필드를 포함한다.
필드 | 값 |
초 | 0-59, 특문 |
분 | 0-59, 특문 |
시 | 0-59, 특문 |
일(day of month) | 0~31, 특문 |
월(month) | 1~12, JAN-DEC, 특문 |
요일(day of week) | 1-7, SUN-SAT, 특문 |
연도(year) | 연도, 특문 |
- 일 · 요일 필드는 특성상 함께 사용될 수 없으므로 둘 중 하나는 최소 ?(사용 안함)가 되는 것이 자연스럽다.
- 연도 필드의 경우 사용하지 않으면 생략해도 상관 없다.
- 초 필드는 Quartz 크론식에는 있지만 Linux/Unix 크론식에는 없다.
특정 필드의 위치에 올 수 있는 특수 문자는 다음과 같다.
기호 | 설명 | 사용 가능한 필드 |
* ( wildcard ) |
모든 숫자 | * |
? | 해당 필드를 사용하지 않음 | * |
- ( range ) |
기간을 설정 | * |
, ( list ) |
특정 기간을 선택 (ex: 14,18 = 14시,18시) |
* |
A/B ( interval ) |
시작/반복 설정 A를 기준으로 B마다 반복 |
* |
L | 마지막 기간 | 일, 요일 |
W | 가장 가까운 평일 | 일 |
A#B | B번째 주 A요일 | 요일 |
범위를 설정한 경우 마지막 숫자까지 포함된다. 예를 들어 0 0/5 12-17 * * ? 라는 표현식이 있다고 생각해보자. 여기서 12-17은 12~17시를 의미하며, 더 정확히는 [ 12, 13, 14, 15, 16, 17 ] 의 의미를 가지므로 위 표현식은 12:00부터 16:55가 아닌 17:55까지 5분 간격을 의미한다.
표현식 예시는 다음과 같다.
표현식 | 설명 |
0 0 12 * * ? | 매일 12시 0분에 실행 |
0 15 10 ? * * | 매일 10시 15분에 실행 ( 일 필드 대신 요일 필드를 사용 ) |
0 15 10 * * ? | 매일 10시 15분에 실행 ( 일 필드 사용 ) |
0 15 10 * * ? 2005 | 2005년에 매일 10시 15분에 실행 |
0 * 14 * * ? | 매일 14시에 매 분마다 실행 ( 14시 59분까지 ) |
0 0/5 14 * * ? | 매일 14시 0분부터 5분 간격으로 실행( 14시 55분까지 ) |
0 0/5 14,18 * * ? | 매일 14:00 ~ 14:55, 18:00 ~ 18:55 에 5분 간격으로 실행 |
0 0-5 14 * * ? | 매일 14시 0 ~ 5분에 실행 |
0 10,44 14 ? 3 WED | 매년 3월 수요일 14:10, 14:44분에 실행 |
0 15 10 ? * MON-FRI | 매월 월-금요일 10시 15분에 실행 |
0 15 10 15 * ? | 매월 15일 10:15에 실행 |
0 15 10 L * ? | 매월 마지막 날 10:15에 실행 |
0 15 10 ? * 6L | 매월 마지막 주 금요일(일요일 = 1로 시작) 10:15에 실행 |
0 15 10 ? * 6L 2002-2005 | 2002년 - 2005년 매월 마지막 주 금요일 10:15에 실행 |
0 15 10 ? * 6#3 | 매월 3주차 금요일 10:15에 실행 |
0 0 12 1/5 * ? | 매월 1일부터 5일 간격으로 12:00에 실행 |
0 11 11 11 11 ? | 매년 11월 11일 11:11에 실행 |
0 0 10 * * ? | 매일 10:00에 실행 |
0 0/15 * * * ? | 매 시간 0분 기준으로 15분마다 실행 |
0 0/10 * ? * MON-FRI | 매주 월-금요일에 매 시간 정각 기준 15분마다 실행 |
0 0/5 8-17 ? * MON-FRI | 매주 월-금요일 08-17 시에 매 시간 정각 기준 5분마다 실행 |
0 0/30 20-2 ? * MON-FRI | 매주 월-금요일 20시 ~ 익일 02시에 매 시간 정각 기준 30분마다 실행 |
표현식 예제 출처
- https://docs.oracle.com/cd/E12058_01/doc/doc.1014/e12030/cron_expressions.htm
- https://docs.aws.amazon.com/eventbridge/latest/userguide/eb-cron-expressions.html
참고한 책: 수제비 정보처리기사 실기
'CS' 카테고리의 다른 글
[CS] DIP / IoC / DI (0) | 2023.10.23 |
---|---|
[CS] 객체 지향 (0) | 2023.10.18 |
[네트워크] HOL(Head Of Line) blocking (0) | 2023.08.03 |
[암호학] 서론 (0) | 2022.09.16 |
[CS] 프로세스(process) 내용 정리 (0) | 2021.11.08 |