크론 표현식 해석기
0 3 * * 1 같은 크론 표현식이 언제 실행되는지 우리말로 풀어 주고, 앞으로의 실행 시각을 실제로 계산해 보여 줍니다. 예약 작업을 걸기 전에 의도한 시간이 맞는지 확인할 수 있습니다.
표현식
뜻
표현식을 넣으면 여기에 풀이가 나옵니다.
앞으로의 실행 시각
자주 쓰는 표현식
크론 표현식 해석기는 0 3 * * 1 같은 예약 작업 표현식이 언제 실행되는지 우리말로 풀어 주고, 앞으로의 실행 시각을 실제로 계산해 보여 줍니다. 풀이만 보여 주는 도구와 달리 날짜를 직접 계산하므로, 의도한 시간이 맞는지 눈으로 확인한 뒤 서버에 걸 수 있습니다.
크론해석기 사용 방법
- 분 시 일 월 요일 순서로 다섯 칸을 넣습니다. 입력하는 즉시 풀이와 실행 시각이 나옵니다.
- 아래 자주 쓰는 표현식을 누르면 그 값이 채워집니다. 거기서 조금씩 고쳐 쓰면 편합니다.
- 오른쪽에 앞으로 여덟 번의 실행 시각이 나옵니다. 요일과 시각이 의도대로인지 확인합니다.
- 칸마다 무엇을 뜻하는지 왼쪽 아래에 하나씩 풀어 두었습니다.
지원 형식과 입력 조건
- 형식
- 표준 크론 5칸 (분 시 일 월 요일)
- 쓸 수 있는 기호
- * (전체) · , (나열) · - (범위) · / (간격). 요일·월 이름 약자(MON, JAN)도 됩니다
- 매크로
- @yearly · @monthly · @weekly · @daily · @hourly
- 요일 표기
- 0 과 7 모두 일요일입니다
- 기준 시각
- 보고 있는 컴퓨터의 시간대. 서버 시간대가 다르면 실제 실행 시각도 다릅니다
가장 많이 틀리는 곳 — 일과 요일을 같이 쓸 때
- 일(3번째 칸)과 요일(5번째 칸)을 둘 다 지정하면, 크론은 둘 중 하나만 맞아도 실행합니다. 그리고(AND)가 아니라 또는(OR)입니다.
- 예를 들어 0 0 1 * 1 은 "매월 1일이면서 월요일"이 아니라 "매월 1일 또는 매주 월요일"입니다. 한 달에 대여섯 번 실행됩니다.
- "매월 1일이면서 월요일"은 표준 크론으로 표현할 수 없습니다. 스크립트 안에서 요일을 한 번 더 확인하는 방법을 씁니다.
- 이 도구는 둘 다 지정되면 그 사실을 화면에 알려 주고, 실행 시각도 OR 규칙대로 계산합니다.
간격(/)이 뜻하는 것
- */5 는 "5분마다"입니다. 0, 5, 10 … 55 분에 실행됩니다.
- 5/10 처럼 앞에 숫자를 쓰면 "5분부터 시작해 10분 간격"입니다. 5, 15, 25 … 55 분입니다.
- 9-18/2 처럼 범위와 함께 쓰면 그 범위 안에서만 간격이 적용됩니다.
- 주의: */70 처럼 칸의 최대값보다 큰 간격은 사실상 한 번만 실행됩니다. 분은 0~59 까지뿐이기 때문입니다.
시간대와 서버
- 이 도구는 보고 있는 컴퓨터의 시간대로 계산합니다. 화면 오른쪽 위에 어떤 시간대를 쓰는지 표시됩니다.
- 서버가 UTC 로 돌고 있다면 실제 실행 시각은 한국 시간과 9시간 차이가 납니다. 서버의 시간대를 먼저 확인하세요.
- 리눅스에서는 date 명령으로, crontab 안에서는 CRON_TZ 로 시간대를 지정할 수 있습니다.
- 서머타임을 쓰는 지역에서는 시계가 바뀌는 날 한 번 건너뛰거나 두 번 실행될 수 있습니다. 한국은 해당되지 않습니다.
자주 묻는 질문
칸이 6개인 표현식은 왜 안 되나요?
스프링(Spring)이나 Quartz 는 맨 앞에 초 칸을 하나 더 둡니다. 이 도구는 리눅스 표준 크론 5칸을 다루므로, 맨 앞 초 칸을 빼고 넣어 주세요.
@reboot 은 왜 계산이 안 되나요?
@reboot 은 시각이 아니라 "부팅할 때"를 뜻합니다. 언제 부팅할지는 알 수 없으므로 실행 시각을 계산할 수 없습니다.
실행 시각이 하나도 안 나옵니다.
2월 30일처럼 존재하지 않는 날짜를 지정했을 가능성이 높습니다. 앞으로 4년 안에 맞는 날이 없으면 그 사실을 알려 드립니다.
풀이와 실행 시각 중 어느 쪽을 믿어야 하나요?
실행 시각입니다. 풀이는 사람이 읽기 쉬우라고 만든 요약이고, 실행 시각은 크론과 같은 규칙으로 1분씩 실제로 맞춰 본 결과입니다.