본문 바로가기
공부/Computer Science

크론(cron) 표현식

by 밍미 2020. 3. 11.
cron표현식

cron 표현식은 UNIX 기반 OS에서 Crontab을 사용하거나, Spring Scheduler 등의 스케줄러에서 사용되는 job scheduling 표현식이다.

업무를 진행하면서 크론식 사용은 종종 해보았지만 늘 쓰던대로만 써왔고, 여태 정리를 해본 적은 없는 것 같아 한 번 정리하여 작성해보기로 하였다.

 

cron 표현식이란

참고: 위키백과

cron 표현식은 스페이스(" ")로 구분되는 7개의 단위로 표현되는 문자열이다.

각 필드는 앞에서부터 초, 분, 시, 일, 월, 요일, 년 으로 구성된다.

필드명필수값 여부허용 값 범위허용 특수 문자비고
초(Seconds)Y0-59* , -일부 표현식에서 사용되는 필드
crontab에서는 사용되지 않음
분(Minutes)Y0-59* , - 
시(Hours)Y0-23* , - 
일(Day of month)Y1-31* , - ? L W? L W는 일부 표현식에서만 사용
월(Month)Y1-12 / JAN-DEC* , - 
요일(Day of week)Y0-6 / SUN-SAT* , - ? L #? L #는 일부 표현식에서만 사용
년(Year)N1970-2099* , -standard/default 표현식에서는 지원하지 않음
  • ,

    • 목록의 항목을 여러 개 사용할 경우, 항목값을 구분하는 데 사용
    • 예) MON,WED,FRI => 월요일, 수요일, 금요일에 실행
  • -

    • 범위 지정
    • 예) 1970-2099 => 2000년부터 2010년까지 매년
  • %

    • 이스케이프 문자(\)와 함께 사용하지 않는 한 개행 문자로 사용됨
    • 첫 번째 % 이후의 입력은 모두 standard input으로 커맨드에 전송된다.
  • *

    • 와일드카드로 모든 값을 의미
  • ?

    • 설정값 없음을 의미
    • 몇몇 표현식에서는 와일드카드(*) 대신 사용하여 월이나 요일 필드를 비워둔다.
  • /

    • 시작시간/단위 로 입력하여 단계 값을 지정할 수 있다.
    • 예) 0 0/1 * * * ? => 1분마다
  • #

    • 요일 필드에서 사용
    • 1-5 사이의 숫자가 와야 한다.
    • 예) 3#1 => 매월 첫째 주 수요일
  • L

    • last를 의미
    • 요일 필드에서는 해당 월의 마지막 해당 요일을 표시
    • 월 필드에서는 해당 월의 마지막 날을 표시
    • 예) 5L => 해당 월 마지막 금요일
  • W

    • 가장 가까운 평일(weekday, MON-FRI)을 표시
    • 예) 1W => 해당 월 1일과 가장 가까운 평일

 

 

cron 표현식의 예

cron식설명
*/1 * * * * ?1초마다
30 0/10 * * * ?30초 뒤부터 10분마다
0 0 10 * * ?매일 10시마다
0 30 10 * * ?매일 10시 30분마다
0 30 10 * * ? 20202020년에 매일 10시 30분마다
0 * 10 * * ?매일 10:00부터 10:59까지 매분마다
0 0/1 10 * * ?매일 10:00부터 10:59까지 매분마다
0 0-30 10 * * ?매일 10:00부터 10:30까지 매분마다
0 30 10 L * ?매월 마지막날 10시 30분마다
0 30 10 ? * 5L매월 마지막 주 금요일 10시 30분마다

 

'공부 > Computer Science' 카테고리의 다른 글

OSI 7계층  (0) 2020.01.06
스풀링(spooling)  (0) 2018.11.08
객체지향 설계의 5대 원칙 (SOLID)  (0) 2018.11.05

댓글