크론 표현식(Cron Expressions)

크론 스케쥴러(Cron Scheduler)에 사용하는 크론 표현식(Cron Expressions에 대해서 알아보자

#cron #cronexpressions


크론 표현식이란?

크론(Cron)을 구동할 때 스케쥴링의 파라미터로 사용되는 식을 크론 표현식(Cron Expressions)라고 한다. 유닉스/리눅스 기반의 스케쥴러에도 사용되지만 Quatz 스케줄러 에서도 사용된다. 크론 표현식은 필드와 특수문자를 조합하여 스케쥴링을 조절할 수 있다.



크론 표현식: 구성

크론 표현식은 아래와 같은 형태로 구성된다. 리눅스/유닉스 크론 표현식에서는 5개 필드가 사용되고, 쿼츠 크론 표현식에서는 7개의 필드가 사용된다.

Swing 기본



크론 표현식: 필드

초(Seconds)

  • 값 범위 : 0 ~ 59
  • 허용 특수문자 : * , - /
  • 리눅스/유닉스 크론탭에서는 사용되지 않는다.

분(Minutes)

  • 값 범위 : 0 ~ 59
  • 허용 특수문자 : * , - /

시(Hours)

  • 값 범위 : 0 ~ 23
  • 허용 특수문자 : * , - /

일(Day of month)

  • 값 범위 : 1 ~ 31
  • 허용 특수문자 : * , - ? L W

월(Month)

  • 값 범위 : 1 ~ 12 또는 JAN ~ DEC
  • 허용 특수문자 : * , - /

주(Day of week)

  • 값 범위 : 0 ~ 6 또는 SUN ~ SAT
  • 허용 특수문자 : * , - ? L #

년(Year)

  • 값 범위 : 생략 또는 1970 ~ 2099
  • 허용 특수문자 : * , - /
  • 리눅스/유닉스 크론탭에서는 사용되지 않는다.



크론 표현식: 특수문자

  • * : 모든 값(매시, 매일, 매주처럼 사용한다.)
  • ? : 특정 값이 아닌 어떤 값이든 상관 없음
  • - : 범위를 지정할 때
  • , : 여러 값을 지정할 때
  • / : 증분값, 즉 초기값과 증가치를 설정할 때
  • L : 지정할 수 있는 범위의 마지막 값 표시
  • W : 가장 가까운 평일(weekday)을 설정할 때
  • # : N번 째 특정 요일을 설정할 때



크론 표현식 예제

매 10분마다

0 0/10 * * * *

매 3시간마다

0 0 0/3 * * *

2018년도 매일 14시 30분마다

0 30 14 * * * 2018

매일 10시 ~ 19시 사이에 10분 간격으로

0 0/10 10-19 * * *

매일 10시와 19시에만 10분 간격으로

0 0/10 10,19 * * *

매달 25일 01시 30분에

0 30 1 25 * *

매주 월, 금요일 10시와 19시 사이 10분마다

0 10 10-19 ? * MON,FRI

매달 마지막날 15시 30분

0 30 15 L * *

2017~2018년 매월의 마지막 토요일 오후 1시 20분

0 20 13 ? * 6L 2017-2018