Cron 표현식 해석기

cron 표현식을 한글로 해석하고 다음 실행 시각을 보여줍니다.

표현식을 입력하세요.

다음 실행 시각

    서버 crontab을 열었는데 30 2 1 * *이 한 달에 한 번인지 하루에 한 번인지 헷갈린 적이 있으실 겁니다. 별표와 숫자만 늘어선 표현식은 익숙해지기 전까지 읽기가 쉽지 않습니다.

    표현식을 입력하면 무슨 뜻인지 한글로 풀어 주고, 앞으로 언제 실행되는지 실제 날짜로 보여 줍니다. 등록 전에 의도한 주기가 맞는지 확인하는 용도입니다.

    어떻게 계산되나요

    다섯 개 필드의 의미

    cron 표현식은 공백으로 구분된 다섯 개 필드입니다.

    분  시  일  월  요일
    *   *   *   *   *
    자리필드허용 범위
    10–59
    20–23
    31–31
    41–12
    5요일0–7 (0과 7은 모두 일요일)

    기호 읽는 법

    • * — 해당 필드의 모든 값. "매 분", "매일"
    • */15 — 15 간격. 분 자리에 쓰면 0·15·30·45분
    • 1-5 — 범위. 요일 자리에 쓰면 월요일부터 금요일
    • 1,15 — 나열. 일 자리에 쓰면 1일과 15일

    예시로 익히기

    표현식의미
    */15 * * * *15분마다
    0 * * * *매시 정각
    0 9 * * 1-5평일 오전 9시
    30 2 1 * *매월 1일 새벽 2시 30분

    빠지기 쉬운 함정

    일(3번째)과 요일(5번째)을 동시에 지정하면 두 조건은 AND가 아니라 OR로 동작합니다. 0 0 1 * 1은 "1일이면서 월요일"이 아니라 "매월 1일 또는 매주 월요일"입니다. 둘 중 하나만 쓰고 나머지는 *로 두는 편이 안전합니다.

    또한 실행 시각은 서버의 시간대를 따릅니다. 서버가 UTC로 설정되어 있다면 0 9 * * *는 한국 시각 오후 6시에 돌아갑니다. 이 도구가 보여주는 다음 실행 시각은 지금 보고 계신 기기의 시간대 기준이므로, 서버 시간대가 다르다면 그 차이를 감안해서 읽어 주세요.

    용어 정리

    cron
    정해진 시각에 명령을 자동 실행해 주는 유닉스 계열의 스케줄러.
    crontab
    cron이 읽는 예약 목록 파일. `crontab -e`로 편집합니다.
    필드
    공백으로 구분되는 각 자리(분·시·일·월·요일).
    스텝(*/n)
    일정 간격으로 반복하도록 지정하는 기호. `*/10`은 10 간격을 뜻합니다.
    요일 0과 7
    둘 다 일요일을 가리킵니다. 표기만 다르고 의미는 같습니다.
    특수 문자열
    @daily, @hourly처럼 자주 쓰는 주기를 대신하는 축약 표기.

    자주 묻는 질문

    cron 표현식이 5자리인 것과 6자리인 것이 다른가요?

    리눅스 crontab은 분부터 시작하는 5자리를 씁니다. 초 단위를 맨 앞에 붙인 6자리 형식은 Spring, Quartz 등 일부 프레임워크에서 쓰는 확장입니다. 이 도구는 표준 5자리 표현식을 기준으로 해석합니다.

    0 0 1 * 1은 언제 실행되나요?

    매월 1일과 매주 월요일에 각각 실행됩니다. 일과 요일을 동시에 지정하면 두 조건 중 하나만 맞아도 실행되기 때문입니다. "1일이면서 월요일"만 노리는 것은 표준 cron만으로는 표현할 수 없어, 스크립트 안에서 조건을 한 번 더 검사해야 합니다.

    등록했는데 실행되지 않습니다.

    시간대와 실행 환경을 먼저 확인해 보세요. 서버 시간대가 예상과 다르거나, cron이 로그인 셸의 PATH를 물려받지 않아 명령을 못 찾는 경우가 흔합니다. 명령을 절대경로로 쓰고, 출력을 로그 파일로 남기도록 리다이렉트하면 원인을 찾기 쉬워집니다.

    매 30초마다 실행하고 싶은데 가능한가요?

    표준 cron의 최소 단위는 1분이라 직접 지정할 수 없습니다. 1분 주기로 실행하면서 스크립트 안에서 30초를 기다렸다 한 번 더 처리하거나, 상주 프로세스나 별도 스케줄러를 쓰는 방식으로 우회합니다.

    서머타임이 있는 지역에서는 어떻게 되나요?

    시계가 앞당겨지는 시각에 걸린 작업은 건너뛰고, 되돌아가는 시각에 걸린 작업은 두 번 실행될 수 있습니다. 한국은 서머타임이 없어 해당되지 않지만, 해외 서버를 쓴다면 서버 시간대를 UTC로 두는 방식이 흔한 대응입니다.