Cron 파서
Cron 표현식을 붙여넣으면 설명, 다음 10회 실행 시각, 필드별 의미를 표시. 자주 쓰는 템플릿도 포함.
완전 무료
가입 불필요
브라우저 완결
5 개 언어
다크 모드
📖 Cron 문법
- •
*— 모든 값 - •
5,10,15— 리스트 - •
1-5— 범위 - •
*/15— 간격(15마다) - •
@hourly @daily @weekly @monthly @yearly— 별칭
📖 자주 걸리는 지점
Cron 식을 붙여 넣으면 자연어 설명과 다음 10회 실행 시각을 계산합니다. 계산에 쓰는 것은 당신 브라우저의 타임존이며 실제로 작업이 도는 서버의 타임존이 아닙니다. 또한 식이 올바른 것과 작업이 실제로 도는 것은 별개의 문제입니다. cron 데몬이 떠 있는지, 실행 사용자의 권한과 PATH 가 맞는지까지는 여기서 알 수 없습니다.
| 사례 | 무슨 일이 일어나는가 | 어떻게 하면 되는가 |
|---|---|---|
| 일과 요일을 모두 지정 | 이 둘을 모두 * 이외로 두면 AND 가 아니라 OR 로 해석됩니다. 0 0 1 * 1 은 매월 1일 이면서 월요일이 아니라 매월 1일 또는 매주 월요일이며 한 달에 5회 안팎 돕니다. Vixie cron 에서 유래한 이 동작은 직관에 반해 사고의 단골입니다. |
둘 중 하나는 반드시 * 로 둡니다. 매월 1일이 월요일일 때만 같은 AND 가 필요하다면 cron 은 매일 돌리고 스크립트 첫머리에서 날짜를 판정해 조기 반환하는 것이 확실합니다. |
분 이외의 필드에서 */n 사용 |
*/n 는 n 으로 나누어떨어지는 값이지 n 마다가 아닙니다. 0 */5 * * * 는 0, 5, 10, 15, 20시에 돌고 20시 다음은 이튿날 0시라 거기만 4시간이 빕니다. 24가 5로 나누어떨어지지 않기 때문입니다. 일(1~31)에서도 월말에 같은 일이 생깁니다. |
등간격으로 하고 싶다면 값을 명시적으로 나열합니다. 6시간마다라면 0 0,6,12,18 * * *. 분이라면 60이 5 · 10 · 15 · 20 · 30 으로 나누어떨어지므로 */5 는 그대로 등간격이 됩니다. 시간대를 좁히려면 0 9-18 * * 1-5 처럼 범위로 쓸 수 있습니다. |
| 손으로 치면 되는데 cron 에서는 안 돈다 | cron 이 넘기는 환경은 로그인 셸과 전혀 다릅니다. PATH 는 /usr/bin:/bin 정도뿐이고 .bashrc 도 읽히지 않으며 nvm 이나 rbenv 초기화도 돌지 않습니다. 게다가 표준 출력과 표준 오류는 메일 설정이 없으면 어디에도 남지 않아 실패한 것조차 알아채지 못합니다. |
명령은 절대 경로로 쓰고(which node 결과를 그대로), crontab 첫머리에 PATH= 와 CRON_TZ=Asia/Seoul 을 선언하고, 줄 끝에 >> /var/log/myjob.log 2>&1 을 붙입니다. 원인 분리에는 * * * * * env > /tmp/cronenv 를 1분만 걸어 두면 cron 이 실제로 넘기는 환경을 그대로 볼 수 있습니다. |
이 파서는 5 필드(분 시 일 월 요일)의 표준 cron 을 대상으로 합니다. 앞에 초를 더한 6 필드 형식은 Quartz 나 node-cron, Spring 의 @Scheduled 같은 구현 고유의 확장이며 리눅스 crontab 에서는 통하지 않습니다. 반대로 @daily 나 @reboot 같은 특수 문자열은 crontab 에서는 써도 많은 라이브러리에서는 해석되지 않습니다. 실제로 돌릴 구현의 문서로 반드시 한 번 확인하세요.
📖 사용법
-
1
5 필드: 분 시 일 월 요일왼쪽부터: 분(0-59) 시(0-23) 일(1-31) 월(1-12) 요일(0-6, 0=일)
-
2
특수문자: * / , -* = 모두, */N = N마다, A,B = A 또는 B, A-B = A부터 B
-
3
실행 시각 확인"다음 10회"로 의도대로인지 반드시 확인 후 배포
❓ 자주 묻는 질문
6 필드 지원?
현재 5 필드만. Quartz / Spring 초 표기는 미지원
복잡한 표현식?
"다음 10회"가 가장 확실. dow + dom 조합 특히 주의
시간대?
브라우저 로컬 시각. 서버 cron TZ와 일치 확인
🔗 관련 도구
🐛 이 도구에서 문제가 발생했나요?
무료 · 가입 불필요. 재현 절차만이라도 도움이 됩니다. 보고는 운영자에게 직접 전달되어 개선에 사용됩니다.
✅
보고 감사합니다!
운영자에게 전달되었습니다. 개선에 사용됩니다.