Crontab 표현식 생성기

분·시·일·월·요일을 설정해 cron 표현식을 만들고 사람이 읽을 수 있게 설명해 줍니다.

자주 쓰는 설정

한국어 설명
다음 실행 시각 5회
#실행 시각요일남은 시간
다음 실행 시각은 이 브라우저의 시간대로 계산합니다. 실제 서버의 시간대(TZ)가 다르면 실행 시각도 달라집니다. 일과 요일을 둘 다 지정하면 cron은 둘 중 하나만 맞아도 실행합니다.
특수문자 도움말
기호의미예시설명
*모든 값* * * * *매분 실행
,값 나열0 9,18 * * *매일 9시와 18시 정각
-범위0 9 * * 1-5월~금요일 9시 정각
/간격(step)*/10 * * * *10분마다
-범위+간격0 9-18/2 * * *9시부터 18시까지 2시간마다
?*와 동일0 9 ? * 1일부 스케줄러(Quartz) 호환 표기
이름월·요일 약어0 9 * JAN MON1월의 월요일 9시 정각
필드 구성
순서필드범위비고
0초 (선택)0-596필드 모드에서만 사용 · 표준 crontab에는 없음
10-59
20-2324시간제 · 0 = 자정
31-31월별 실제 일수까지만 실행
41-12JAN, FEB … DEC 사용 가능
5요일0-70과 7 모두 일요일 · SUN, MON … SAT 사용 가능

Crontab 표현식 생성기란?

리눅스 서버에서 주기적인 작업을 예약할 때 쓰는 cron 표현식, 별표(*)와 숫자가 뒤섞여 있어 매번 헷갈리셨나요? 툴즈25시의 Crontab 표현식 생성기는 복잡한 문법을 몰라도 누구나 쉽게 cron 스케줄을 만들 수 있도록 돕는 도구입니다. 분, 시, 일, 월, 요일 필드에 원하는 값을 입력하면 즉시 유효한 cron 표현식이 완성됩니다. 반대로 기존 표현식을 붙여넣으면 각 필드로 자동 분해되어 내용을 분석하기도 편합니다. 이 도구의 가장 큰 장점은 생성된 표현식이 어떤 의미인지 알기 쉬운 우리말 설명으로 보여주고, 앞으로 실행될 시각을 5개까지 미리 계산해 보여준다는 점입니다. 덕분에 ‘매주 월요일 새벽 3시’를 의도했는데 ‘매일 3시와 월요일’로 잘못 설정하는 실수를 막을 수 있습니다. 표준 5필드 방식은 물론, 초(second) 단위 설정이 가능한 6필드 방식도 지원하며, 모든 계산은 사용자의 브라우저 안에서만 안전하게 처리됩니다.

사용 방법

  1. 화면의 '자주 쓰는 설정'에서 '매일 자정', '평일 오전 9시' 등 원하는 주기를 클릭하여 바로 시작할 수 있습니다.
  2. 또는 분·시·일·월·요일 각 필드에 원하는 값을 직접 입력합니다. 값을 입력하는 즉시 상단의 'cron 표현식'이 자동으로 완성됩니다.
  3. 반대로, 기존 cron 표현식을 상단 입력창에 붙여넣으면 각 필드 값으로 자동 분리되어 표시됩니다.
  4. 생성된 '한국어 설명'과 '다음 실행 시각 5회' 목록을 보고 의도한 대로 설정되었는지 꼼꼼하게 확인합니다.
  5. 최종 확인이 끝난 표현식 옆의 '복사' 버튼을 눌러 crontab이나 스케줄러 설정에 사용합니다.

자주 묻는 질문

cron 표현식의 5개 필드는 각각 무엇을 의미하나요?

cron 표현식은 공백으로 구분된 5개의 필드로 이루어지며, 순서대로 '분(0-59)', '시(0-23)', '일(1-31)', '월(1-12)', '요일(0-6)'을 의미합니다. 예를 들어 '0 9 * * 1'은 '매주 월요일 오전 9시 0분'에 작업을 실행하라는 뜻입니다. 요일은 0과 7이 모두 일요일을 가리키며, 월과 요일은 JAN, SUN과 같은 영문 약어로도 쓸 수 있습니다.

별표(*), 슬래시(/), 쉼표(,) 같은 특수기호는 무슨 뜻인가요?

특수기호는 시간 주기를 더 유연하게 설정하도록 돕습니다. 별표(*)는 '모든 값'을 의미하며, 분 필드에 쓰면 '매분'마다 실행됩니다. 쉼표(,)는 값을 나열할 때 씁니다(예: '9,18'은 9시와 18시). 하이픈(-)은 값의 범위를 지정하며(예: '1-5'는 월요일부터 금요일까지), 슬래시(/)는 간격을 뜻합니다(예: '*/10'은 10분마다).

일과 요일을 함께 지정하면 어떻게 되나요?

대부분의 cron 시스템은 '일' 필드와 '요일' 필드에 모두 특정 값(별표(*) 아님)을 지정하면, 둘 중 하나만 맞아도 명령을 실행합니다(OR 조건). 예를 들어 '0 0 1 * 1'은 '매월 1일 또는 매주 월요일의 0시 0분'에 실행됩니다. 매월 1일이면서 동시에 월요일인 날에만 실행되는 것이 아니므로 주의해야 합니다.

표준 crontab은 5필드인데, 6필드는 어디에 쓰나요?

표준 리눅스 crontab은 '분' 단위까지만 제어하는 5필드 형식을 사용합니다. 하지만 일부 최신 스케줄러는 초 단위의 더 정밀한 제어를 지원하며, 이때 맨 앞에 '초(0-59)' 필드를 추가한 6필드 형식을 사용합니다. 예를 들어 systemd Timers, Quartz Scheduler(Java), node-cron(Node.js) 등이 6필드 형식을 지원합니다. 사용하려는 시스템이 어떤 형식을 지원하는지 확인이 필요합니다.