Cron 표현식 생성기
스케줄 작업을 위한 Cron 표현식을 생성합니다. 시각적 빌더로 쉽게 표현식을 만들거나, 기존 표현식을 입력해 설명을 확인하세요.
* * * * *
분(0-59) 시(0-23) 일(1-31) 월(1-12) 요일(0-6, 0=일요일)
표준 5필드 cron 표현식을 입력하세요. (분 시 일 월 요일)
Cron 표현식 생성기 가이드
Cron 표현식 알아보기
Cron 표현식은 Unix/Linux 기반 시스템에서 작업 스케줄링을 정의하기 위해 사용하는 문자열 포맷입니다. 분(minute), 시(hour), 일(day of month), 월(month), 요일(day of week) 총 5개의 필드로 구성되어 있으며, 각 필드에 숫자나 특수 문자를 조합해 실행 시점을 지정합니다. 서버 운영자라면 로그 정리, DB 백업, 캐시 초기화 같은 반복 작업을 자동화할 때 반드시 알아야 하는 개념입니다. 이 도구는 cron 문법에 익숙하지 않더라도 시각적 인터페이스로 원하는 스케줄을 쉽게 만들 수 있도록 도와줍니다. 직접 표현식을 입력해 파싱하는 역방향 모드도 지원하므로, 다른 사람이 작성한 crontab을 분석할 때도 유용합니다.
다섯 칸의 의미
표현식은 공백으로 구분된 다섯 칸이며 왼쪽부터 분, 시, 일, 월, 요일입니다. 각 칸에 쓰는 기호는 네 가지뿐입니다.
*— 모든 값. 분 칸의 별표는 매분이라는 뜻입니다.,— 나열.1,15는 1일과 15일입니다.-— 범위. 요일 칸의1-5는 월요일부터 금요일입니다./— 간격.*/10은 10분마다입니다.
요일은 0이 일요일이고 6이 토요일입니다. 7도 일요일로 받아주는 구현이 많지만 0을 쓰는 편이 안전합니다.
일과 요일을 동시에 쓰면 OR입니다
가장 많이 틀리는 규칙입니다. 세 번째 칸(일)과 다섯 번째 칸(요일)에 둘 다 구체적인 값을 넣으면 AND가 아니라 OR로 동작합니다.
0 0 1 * 1은 "매월 1일이면서 월요일"이 아니라 "매월 1일 또는 매주 월요일"입니다. 한 달에 대여섯 번 실행됩니다. "매월 첫 번째 월요일"처럼 두 조건을 모두 만족시키려면 cron만으로는 표현할 수 없고, 매주 월요일에 실행하되 스크립트 안에서 날짜가 7일 이하인지 확인하는 방식으로 처리해야 합니다.
실무에서 챙길 것
시간대를 확인하세요. cron은 시스템 시간대를 따릅니다. UTC 서버에 0 9 * * *을 넣으면 한국 시간 오후 6시입니다. date로 먼저 확인하고 필요하면 crontab 상단에 CRON_TZ=Asia/Seoul을 선언하세요.
정각을 피하세요. 많은 작업이 0 * * * *에 몰리면 그 순간 부하가 집중됩니다. 7 * * * *처럼 분을 어긋나게 두면 분산됩니다.
겹침을 막으세요. 5분마다 도는 작업이 6분 걸리면 이전 실행이 끝나기 전에 다음이 시작됩니다. cron은 이를 막아주지 않으므로 스크립트에서 잠금 파일을 쓰거나 flock으로 감싸야 합니다.
자주 묻는 질문
1초 단위로 실행할 수 있나요?
표준 cron의 최소 단위는 1분입니다. 더 짧은 주기가 필요하면 스크립트 안에서 반복하거나 별도의 스케줄러를 쓰세요.
서버가 꺼져 있던 시간의 작업은요?
실행되지 않고 그냥 지나갑니다. 놓친 작업을 나중에 실행해 주는 기능은 없습니다. 반드시 실행되어야 하는 작업이라면 별도의 보정 로직이 필요합니다.
스크립트가 수동으로는 되는데 cron에서는 안 됩니다
환경변수 차이가 대부분의 원인입니다. cron은 최소한의 환경에서 실행되어 PATH가 짧습니다. 명령어를 절대 경로로 쓰거나 스크립트 첫머리에서 환경을 직접 설정하세요.
Cron 필드 설명
| 필드 | 허용 값 | 특수 문자 |
|---|---|---|
| 분 | 0-59 | * , - / |
| 시 | 0-23 | * , - / |
| 일 | 1-31 | * , - / L W |
| 월 | 1-12 또는 JAN-DEC | * , - / |
| 요일 | 0-6 또는 SUN-SAT | * , - / L # |