MiServe DevTools

내 스티커

도구를 여기에 고정하세요. 이 브라우저에 저장됩니다.

cron 표현식 해석기

cron 표현식을 필드별로, 그리고 쉬운 한 문장으로 풀어 읽고 다음 실행 시각을 확인합니다.

쉽게 말하면

표현식의 각 필드가 뜻하는 것
필드값의미허용 값
분 0–59
시 0–23
일 1–31
월 1–12, JAN–DEC
요일 0–7, SUN–SAT

다음 실행

회차지금부터

브라우저에서 실행됩니다. 붙여 넣은 내용은 업로드되지 않습니다.

이 도구에 대하여

다섯 개의 필드

cron 표현식은 공백으로 구분된 다섯 개의 필드, 즉 분(0–59), 시(0–23), 일(1–31), 월(1–12), 요일(0–7, 0과 7은 모두 일요일)로 이루어집니다. cron은 1분에 한 번 시계를 확인하고, 분, 시, 월, 일이 모두 일치하면 작업을 실행합니다. 날짜가 일치하는지는 일과 요일 두 필드를 함께 보고 아래에 설명한 규칙으로 판단합니다.

각 필드에서 *는 모든 값에 일치하고, 1,15 같은 목록은 그 안의 각 값에, 1-5 같은 범위는 첫 값부터 마지막 값까지 모두에 일치하며, */15나 8-18/2 같은 스텝은 범위에서 N번째 값마다 하나씩 취합니다. 월과 요일은 JAN~DEC, SUN~SAT처럼 세 글자 영어 이름으로도 쓸 수 있습니다.

매크로는 축약형입니다. @hourly는 0 * * * *, @daily와 @midnight는 0 0 * * *, @weekly는 0 0 * * 0, @monthly는 0 0 1 * *, @yearly와 @annually는 0 0 1 1 *와 같습니다.

일과 요일이 모두 지정된 경우

일과 요일 필드는 서로 범위를 좁히지 않습니다. 둘 다 지정되어 있으면 둘 중 하나라도 일치하는 날에 작업이 실행됩니다. 따라서 0 0 13 * 5는 13일의 금요일에만 실행되는 것이 아니라, 매월 13일 자정과 매주 금요일 자정에 실행됩니다.

Vixie cron과 cronie는 일이나 요일 필드가 지정되었는지를 첫 글자로 판단합니다. */2 같은 스텝을 포함해 *로 시작하는 필드는 지정되지 않은 것으로 보며, 이때는 두 필드가 모두 일치해야 합니다. 0 0 */2 * 1은 홀수 날짜에 해당하는 월요일에 실행됩니다. 이 도구도 같은 규칙을 따르며, 두 경우 중 어느 쪽이 적용되는지 알려 줍니다.

스텝, 시간대, 읽지 않는 문법

스텝은 범위의 시작부터 세고, 범위가 끝나면 처음부터 다시 셉니다. 분 필드의 */15는 0, 15, 30, 45가 되므로 실제로 15분마다입니다. */7은 0, 7, 14, …, 56까지 간 다음, 4분 뒤에 다시 0이 됩니다. 이를 확인할 수 있도록 표에는 스텝이 펼쳐지는 값이 나열됩니다.

cron은 표현식을 실행 중인 머신의 시계와 비교하며, 많은 서버가 그 시계를 UTC로 둡니다. 다음 실행 목록 위에서 로컬 시간 또는 UTC를 골라 머신에 맞추고, 다른 열에서 같은 시점을 다른 시간대로 확인하세요. 서머타임으로 로컬 시계가 바뀔 때, 건너뛰거나 반복되는 한 시간 동안에 설정된 작업을 어떻게 처리하는지는 cron 구현마다 다릅니다. 이 도구는 건너뛰는 시각에는 실행을 나열하지 않으며, 반복되는 시각은 분 필드나 시 필드가 *로 시작할 때만 두 번 나열합니다.

표준 5필드 문법만 읽습니다. 초 필드, 연도 필드, 그리고 ?, L, W, # 문자는 Quartz 같은 다른 스케줄러의 것이므로 오류로 표시합니다. 5/15처럼 단일 값 뒤에 스텝을 붙인 것도 마찬가지입니다. crontab 매뉴얼은 *나 범위 뒤의 스텝만 정의하므로 5-59/15로 쓰세요.

자주 묻는 질문

cron 표현식에서 */5는 무슨 뜻인가요?

필드가 허용하는 가장 작은 값부터 세어 다섯 번째 값마다라는 뜻입니다. 분 필드에서는 0, 5, 10, …, 55분이므로 작업이 5분마다 실행됩니다. 시 필드에서는 0, 5, 10, 15, 20시입니다.

0 0 13 * 5는 13일의 금요일에만 실행되나요?

아니요. 일과 요일이 모두 지정되어 있으면 cron은 둘 중 하나만 일치해도 작업을 실행합니다. 이 표현식은 매월 13일과 매주 금요일에 실행됩니다.

일요일은 0인가요, 7인가요?

둘 다입니다. 요일 필드는 0부터 7까지 받으며, 0과 7은 모두 일요일입니다. 월요일은 1, 토요일은 6입니다. SUN, MON 같은 이름으로 쓸 수도 있습니다.

cron은 어떤 시간대를 사용하나요?

스케줄러에서 작업별로 시간대를 지정할 수 있는 경우가 아니라면, cron은 실행 중인 시스템의 시계와 시간대를 사용합니다. 많은 서버와 호스팅 스케줄러가 UTC로 동작하므로, 로컬 시간이라고 가정하기 전에 확인하세요.

시간의 다른 도구