본문으로 건너뛰기

cron 표현식 만들기

Cron Builder

cron 표현식을 필드마다 허용 범위가 적힌 입력 상자에 직접 입력해 만들고, 바꿀 때마다 실행 일정을 보여 줍니다.

cron 표현식을 필드별로 만듭니다. 필드마다 허용 범위와 뜻이 옆에 붙고, 입력하는 대로 다음 실행 시각이 갱신됩니다. 파서와 같은 화면에서 필드를 편집할 수 있게 한 것입니다. 만드는 일과 읽는 일은 같은 문제를 양쪽에서 보는 것입니다.

🔒 브라우저 안에서만 처리cronschedulegenerator

표현식

다섯 필드, 또는 앞에 초를 붙인 여섯 필드입니다. `@daily`, `@hourly` 같은 것도 됩니다.

말로 풀면

월요일부터 금요일까지 09:00에 실행합니다.

필드별로 만들기

cron 필드마다 한 줄.
필드값뜻
분0-590분`*/15`는 15분마다, `15`는 매시 15분입니다.
시0-239시언제나 24시간제이고, 스케줄러가 달리 정하지 않는 한 서버의 시간대를 씁니다.
일1-31매일`L`은 마지막 날입니다. 31일은 짧은 달에는 그냥 실행되지 않습니다.
월1-12 또는 JAN-DEC매월이름은 대소문자를 가리지 않습니다.
요일0-7 또는 SUN-SAT월요일부터 금요일까지0과 7 모두 일요일입니다. `5#3`은 셋째 금요일, `5L`은 마지막 금요일입니다.

다음 실행

개수
앞으로 5년 안에 실행될 일이 없습니다. 2월 30일 같은 날짜는 오지 않습니다.

시간대

UTC

브라우저가 아니라 위에서 고른 시간대 기준으로 계산합니다. 서머타임이 건너뛰는 벽시계 시각은 여기서도 건너뜁니다.

사용 방법

  1. 미리 준비된 것에서 시작합니다

    매시 정각, 매일 3시, 평일 9시, 매월 1일, 매월 마지막 날 같은 것들입니다. 대부분의 일정은 이 중 하나에서 한 번만 고치면 됩니다.

  2. 필요한 필드를 고칩니다

    필드마다 입력 상자가 있고 이름 아래에 허용 범위가 적혀 있습니다. 입력하는 대로 위의 설명 문장이 다시 쓰입니다.

  3. 다음 실행 시각으로 확인합니다

    내 시간대가 아니라 스케줄러가 쓰는 시간대로 봅니다. 맞아 보이는데 엉뚱한 시각에 도는 일정은 거의 항상 필드가 아니라 시간대 문제입니다.

자주 묻는 질문

90분마다 돌리려면 어떻게 하나요?

표현식 하나로는 안 됩니다. cron의 필드는 서로 독립적이라 분에 `*/90`은 유효하지 않고, 한 시간으로 나누어떨어지지 않는 주기는 표현할 방법이 없습니다. 표현식 두 개를 쓰거나 간격을 지원하는 스케줄러를 쓰는 것이 답입니다.

초 필드를 넣어야 하나요?

쓰는 스케줄러가 여섯 필드를 원할 때만입니다. Quartz와 Spring은 원하고, 유닉스 cron은 원하지 않으며 그런 표현식을 거절합니다. 여기 버튼으로 넣었다 뺐다 하면서 같은 일정의 두 표기를 볼 수 있습니다.

31일은 왜 2월에 실행되지 않나요?

2월 31일이 없기 때문입니다. cron은 마지막 날로 당겨 주지 않고 그냥 일치하지 않습니다. "그 달의 마지막 날"을 뜻하는 것은 확장인 `L`이고, 스케줄러가 지원할 때만 쓸 수 있습니다.

이 도구로 이어지는 것

다음 단계

이 도구의 결과를 그대로 받을 수 있는 도구들입니다.