⏱️
← 가이드 목록으로

Cron 표현식 검증 방법: 단계별 가이드

· 태그: cron-validation, cron-debugging, cron-syntax-check, schedule-validation, linux-crontab

Cron 표현식 검증 방법

cron 표현식은 간결하지만 실수하기 쉽습니다. 슬래시 위치가 잘못되었거나 범위를 벗어난 값 하나로 인해 작업이 잘못된 시간에 실행되거나 전혀 실행되지 않을 수 있습니다. 배포 전에 표현식을 검증하면 중요한 작업이 조용히 실패할 때 발생하는 몇 시간의 디버깅을 절약할 수 있습니다.

일반적인 구문 오류

범위를 벗어난 값

각 필드는 특정 범위를 허용합니다. 이 범위를 벗어난 값은 유효하지 않습니다.

# 유효하지 않음: 분 60은 범위를 벗어남 (0-59)
60 * * * *

# 유효하지 않음: 시 24는 범위를 벗어남 (0-23)
0 24 * * *

필드 누락

cron 표현식은 정확히 5개의 필드가 필요합니다. 4개 필드는 유효하지 않으며, 6개 필드는 확장 구문이 필요합니다.

# 유효하지 않음: 필드가 4개뿐 (요일 누락)
0 0 * *

# 유효하지 않음: 적절한 데몬 지원 없이 6개 필드 구문 사용
0 0 * * * * /command.sh

항상 분, 시, 일, 월, 요일의 개수를 세어보세요.

잘못된 간격 값

# 유효하지 않음: 0으로 간격을 둘 수 없음
*/0 * * * *

# 유효하지 않음: 간격이 필드 최대값을 초과함
*/61 * * * *

간격 값은 1부터 시작해야 하며 필드의 최대값을 초과할 수 없습니다.

Cron 표현식 검증 방법

1단계: 필드로 분리하기

공백으로 분할하고 정확히 5개의 필드인지 확인합니다:

표현식: 30 6 * * 1-5
필드:     분=30, 시=6, 일=*, 월=*, 요일=1-5

2단계: 각 필드 검증하기

| 필드 | 허용 범위 | 특수 문자 허용 | |-------|--------------|-----------------------| | 분 | 0-59 | * , - / | | 시 | 0-23 | * , - / | | 일 | 1-31 | * , - / | | 월 | 1-12 | * , - / | | 요일 | 0-7 | * , - / |

3단계: 충돌 확인하기

일부 표현식은 구문적으로 유효하지만 논리적으로 의외의 결과를 낼 수 있습니다:

# 15일 또는 매주 일요일에 실행 — OR 조건
0 0 15 * 0

표준 cron에서 일 필드와 요일 필드를 함께 사용하면 OR 조건이 생성됩니다. 둘 중 하나라도 일치할 때 작업이 실행됩니다.

4단계: 다가오는 실행 시간 미리 보기

실행 시간을 생성하여 일정을 시각적으로 확인합니다:

표현식: 0 2 * * 1
다음 5회 실행:
  1. 2026-07-27 02:00:00 (월요일)
  2. 2026-08-03 02:00:00 (월요일)
  3. 2026-08-10 02:00:00 (월요일)

미리 보기가 의도와 일치하지 않으면 프로덕션에 적용하기 전에 표현식을 수정하세요.

실행되지 않는 작업 디버깅

유효한 표현식이 실행되지 않는 경우 일반적으로 시스템 문제입니다:

  • 권한 — 스크립트에 실행 권한이 있어야 합니다 (chmod +x).
  • 경로 — cron은 최소한의 PATH를 사용합니다. 항상 절대 경로를 사용하세요: mybackup.sh가 아닌 /usr/local/bin/mybackup.sh.
  • 환경 — cron은 셸 프로필을 로드하지 않습니다. crontab이나 스크립트 자체 내에서 변수를 내보내세요.
  • 로깅 — 출력을 리디렉션하여 실행을 확인하세요:
0 6 * * * /path/to/script.sh >> /var/log/cron.log 2>&1

검증기 도구 사용하기

cron 표현식 검증기는 세 가지 기능을 제공합니다:

  1. 구문 검증 — 필드 값과 형식에 대한 즉각적인 피드백.
  2. 일정 미리 보기 — 현재 날짜부터 다가오는 실행 시간을 확인.
  3. 시각적 달력 — 월간 달력에 예약된 실행을 표시.

다가오는 여러 실행 시간을 미리 보지 않고 cron 표현식을 배포해서는 안 됩니다. 30초간의 확인으로 조용한 일정 실패를 방지할 수 있습니다.

Cron 표현식 검증 방법: 단계별 가이드 - CoolTool