Cron 표현식 계산기
표준 5필드 cron 표현식(cronie 방식)과 시작 날짜·시간을 입력하면 작업이 다음에 언제 실행되는지 확인할 수 있습니다.
이 계산기가 따르는 cron
이 계산기는 Linux crontab에서 쓰는 표준 5필드 cron 표현식을 읽으며, cronie의 동작을 따릅니다. 다른 cron 방식을 위한 계산기가 아닙니다. 특히 Quartz 방식 표현식(초와 연도를 포함한 6~7개 필드와 ? L W # 문자)은 다르므로 지원하지 않습니다. AWS EventBridge, Kubernetes CronJob, systemd 타이머 같은 스케줄러는 고유한 구문이나 표준 시간대 설정이 있으므로 이것들도 다루지 않습니다.
| 필드 | 범위 | 작성 방법 |
|---|---|---|
| 분 | 0–59 | *, 숫자, 1,15(목록), 10-20(범위), */15 또는 0-30/10(간격) |
| 시 | 0–23 | 동일 |
| 일 (날짜) | 1–31 | 동일 |
| 월 | 1–12 | 같음. 이름(jan~dec, 대소문자 구분 없음)도 목록과 범위에서 사용할 수 있음 |
| 요일 | 0–7 | 같음. 이름(sun~sat)도 사용할 수 있음. 0과 7은 모두 일요일 |
@yearly(@annually) =0 0 1 1 *,@monthly=0 0 1 * *,@weekly=0 0 * * 0,@daily=0 0 * * *,@hourly=0 * * * *. 이 계산기는@midnight도@daily로 받아들입니다.- 0으로 끝나는 요일 범위(
5-0)는 7로 끝나는 것(금요일, 토요일, 일요일)으로 해석합니다. - 간격이 범위보다 큰 경우(예: 시 필드의
*/23)에는 첫 값과 간격으로 도달하는 값만 사용합니다(*/23= 0시와 23시).
일과 요일: OR와 AND
일 필드와 요일 필드가 함께 작동하는 방식은 cron 구현(cronie)이 정합니다.
- 어느 필드도
*로 시작하지 않으면, 둘 중 하나에 해당하는 날 실행됩니다(OR).30 4 1,15 * 5는 매월 1일과 15일 그리고 매주 금요일 4시 30분에 실행됩니다. - 어느 한쪽이라도
*로 시작하면, 둘 다에 해당하는 날 실행됩니다(AND).*로 시작하는 필드는 "제한 없음"으로 취급됩니다. *와*/2는 둘 다*로 시작하므로 같게 취급됩니다. 전개된 값만 다릅니다(*/2는 홀수 일인 1, 3, 5 등).0 0 */2 * 1= 홀수 일 AND 월요일0 0 1-31/2 * 1= 홀수 일 OR 월요일 (1-31/2는*로 시작하지 않음)
- 결과에는 OR와 AND 중 어느 쪽이 적용되는지 표시됩니다.
검색 범위
입력한 날짜와 시간 이후부터 하루씩 최대 10년 앞까지(단 2100년 12월 31일까지) 확인합니다. 2월 29일처럼 몇 년에 한 번만 실행되는 표현식도 10년 안에 실행되면 찾아냅니다. 10년 안에 실행되지 않으면(예: 존재하지 않는 날짜) 결과에 그렇게 표시됩니다. 시작 시각 자체는 포함되지 않습니다(그 "이후"의 시각을 찾습니다).
지원하지 않는 구문
다음 중 하나를 입력하면 읽을 수 없는 이유를 계산기가 설명합니다.
- 6개 또는 7개 필드로 된 표현식(Quartz처럼 초 또는 연도 필드가 있는 것)
?,L,W,#(Quartz 구문)@reboot(시작할 때 한 번 실행되는 작업이므로 실행 시각이 없음)~(cronie의 무작위 값)와CRON_TZ(crontab별 표준 시간대)5/15처럼 시작 값 하나에 간격을 붙인 것
표준 시간대와 일광 절약 시간제
입력한 날짜와 시간은 연, 월, 일, 시, 분으로 그대로 사용됩니다. 표준 시간대 변환과 일광 절약 시간제는 계산하지 않으므로, 결과가 사용 중인 시스템에서 cron이 실제로 하는 동작과 다를 수 있습니다. cronie 매뉴얼(2026년 10월 28일 확인)에 따르면 일광 절약 시간제 변경으로 존재하지 않게 된 시간대의 작업은 실행되지 않고, 두 번 나타나는 시간대의 작업은 두 번 실행됩니다. 다른 cron 구현은 이를 다르게 처리합니다.
예시
- **
*/15 9-17 * * 1-5**는 평일 9:00부터 17:59까지 15분마다 실행됩니다 - **
0 9 * * 1**은 매주 월요일 9:00에 실행됩니다 - **
0 0 1 * ***은 매월 1일 0:00에 실행됩니다(@monthly와 같음) - **
0 0 * * 0**과 **0 0 * * 7**은 둘 다 매주 일요일 0:00에 실행됩니다 - **
30 4 1,15 * 5**는 1일과 15일, 그리고 매주 금요일 4:30에 실행됩니다(OR) - **
0 0 29 2 ***는 윤년의 2월 29일 0:00에 실행됩니다(다음 실행은 몇 년 뒤일 수 있음) - **
0 0 31 2 ***는 2월 31일이 존재하지 않으므로 실행되지 않습니다(10년 안에 찾을 수 없음)
출처와 확인 날짜
구문과 동작은 2026년 10월 28일에 cronie의 소스 코드(entry.c와 cron.c) 및 cronie의 crontab(5) 매뉴얼(GitHub의 cronie)로 확인했습니다. 이 영어 페이지를 위해 2026년 10월 31일에는 cronie 매뉴얼인 man7.org의 crontab(5) 매뉴얼 페이지도 열어 보았습니다. 여기에는 5개 필드와 그 범위, 월과 요일의 이름(앞 세 글자, 대소문자 구분 없음, 목록과 범위에서 사용 가능), 두 일 필드 어느 쪽에도 *가 없을 때의 OR 동작, 단축 표기 @reboot, @yearly, @annually, @monthly, @weekly, @daily, @hourly가 나와 있습니다. 이 매뉴얼 페이지에는 @midnight가 나와 있지 않고 AND 동작도 설명되어 있지 않으며, 이 두 가지는 cronie 소스 코드에서 가져왔습니다. 다른 cron 구현과의 차이는 확인하지 않았습니다.
자주 묻는 질문
일과 요일을 모두 지정하면 어떻게 되나요?
어느 필드도 *로 시작하지 않으면 둘 중 하나에 해당하는 날 실행됩니다(OR). 어느 한쪽이라도 *로 시작하면(*/2 포함) 둘 다에 해당하는 날 실행됩니다(AND).
요일의 0과 7은 어떻게 다른가요?
차이가 없습니다. 둘 다 일요일입니다.
결과가 실제 cron의 동작과 다를 수 있나요?
네. 이 계산기는 입력한 날짜와 시간을 그대로 사용하며 표준 시간대나 일광 절약 시간제를 계산하지 않습니다. cronie 이외의 cron 구현은 동작이 다를 수도 있습니다.
10년 이후는 왜 표시되지 않나요?
검색은 시작 날짜와 시간으로부터 10년 뒤에 멈춥니다. 2월 31일처럼 존재하지 않는 날짜의 표현식은 실행되지 않습니다.