All Articles

Cron Expression

cron expression

Table of Contents

About Cron Expression

크론 표현식은 스케쥴 기반으로 프로그래밍을 하고자 할 때 유용하게 쓰인다.
특정 작업을 주기적으로 실행 시키고자 할 때 사용할 수 있다.

Amazon CloudWatch 에서도 이벤트 스케쥴링을 위해 Cron 표현식이 사용된다.
아래의 예시를 보자.

예)
AWS CloudWatch에서 Cron Expression을 통해 Events 에 스케쥴을 걸어줄 수 있다.

Screen Shot 2020-08-04 at 7 03 31 PM



CloudWatch에서 매주 월요일 0시 0분 0초 스케쥴링을 건 결과 모습 cron every monday

만약 잘 못된 cron expression을 입력한다면 예상 Trigger Date 이 보이지 않으며 다음 스탭을 진행하는 과정에서 아래와 같은 오류를 만나게 된다.

invalid cron expression

Error Message : Parameter ScheduleExpression is not valid

[Fields]
크론 표현식은 보통 6~7 개의 필드가 사용된다.

* * * * * * * 
1 2 3 4 5 6 7
  • 1 번째 필드 : 초 Second
  • 2 번째 필드 : 분 Minute
  • 3 번째 필드 : 시 Hour
  • 4 번째 필드 : 일 Day
  • 5 번째 필드 : 월 Month
  • 6 번째 필드 : 주 Week
    요일은 숫자와 문자로 표현 가능하다.
    0-6
    SUN-SAT (case-insensitive)
  • 7 번째 필드 : 연도 Year
    (Optional)

이를 알기 쉽게 이미지로 표현하자면 아래와 같다.

cron expression

↑ return to TOC

Syntax

크론 표현식의 문법을 자세히 살펴보자.

  • *
    모든 값
    예) 초 자리에 위치했을 시 ‘매 초(ever second)’ 를 의미
  • -
    범위를 지정해 줄 때
    예) 1시부터 3시까지
  • ?
    특정값이 없을 때
  • ,
    여러 값(Mutiple Values)를 지정해 줄 때
    예) MON, WED, FRI ‘월, 수, 금 마다’를 의미
  • L
    Last 마지막을 의미
    예) 3L ‘달의 마지막 수요일’을 의미
  • W
    Weekday (Mon-Fri) 가장 가까운 평일
    예) 12W ‘이달의 12일과 가장 가까운 평일’ 을 의미
  • #
    Day of Week 몇번째 특정 요일
    예) 0#3 ‘세번째 주 일요일’을 의미
  • /
    증가 값

↑ return to TOC

Examples

0 0 0 ? * SUN *
└─ At 12:00 AM, only on Sunday

0 0/10 * * * *
└── Every 10 Minutes

0 24 ? * MON-FRI
└── At 12:00 PM, Monday through Friday

0 30 10 12 * ?
└── At 10:30 AM, on day 12 of the month

0 0 0 * * ? 2022
└── At 12:00 AM, only in 2022

0 0 11 L-1 * ?
└── At 11:00 AM, 1 days before the last day of the month

↑ return to TOC