본문으로 바로가기

Cron 표현식 생성기

크론 스케줄 시각적 생성 도구

Cron 표현식

* * * * *

매분 매시

입력 방식

다음 실행 예정

2025. 12. 19. (금) 오후 01:39
2025. 12. 19. (금) 오후 01:40
2025. 12. 19. (금) 오후 01:41
2025. 12. 19. (금) 오후 01:42
2025. 12. 19. (금) 오후 01:43

자주 사용하는 스케줄

문법 참조

*모든 값
*/nn마다
n-mn부터 m까지
n,mn과 m

요일: 0=일, 1=월, ..., 6=토

Cron 표현식 생성기는 리눅스/Unix의 Cron 스케줄 표현식을 시각적으로 만들고 테스트할 수 있는 도구입니다. 🔧 빌더 모드 사용하기 • 5개 필드(분, 시, 일, 월, 요일)에 원하는 값을 입력하세요 • 각 필드는 0-59(분), 0-23(시), 1-31(일), 1-12(월), 0-6(요일) 범위를 가집니다 • 특수 문자를 활용하여 패턴을 만들 수 있습니다 • 실시간으로 생성된 표현식과 설명을 확인할 수 있습니다 ✏️ 직접 입력 모드 • "직접 입력" 탭을 선택하여 완성된 cron 표현식을 붙여넣거나 수정할 수 있습니다 • 5개 필드를 공백으로 구분하여 입력하세요 (예: 0 9 * * 1) • 입력한 표현식이 자동으로 해석되어 설명이 표시됩니다 ⏰ 실행 예정 확인 • 생성된 표현식의 다음 5회 실행 시간을 미리 볼 수 있습니다 • 예상 실행 시간을 확인하여 의도한 스케줄이 맞는지 검증하세요 📋 자주 사용하는 스케줄 • 오른쪽 패널에서 자주 사용하는 패턴을 클릭하면 즉시 적용됩니다 • 매분, 매시, 매일, 매주 등 일반적인 스케줄이 미리 준비되어 있습니다
Cron 표현식은 5개의 필드로 구성되며, 각 필드는 공백으로 구분됩니다. 📝 필드 구조 `분 시 일 월 요일` 각 필드의 의미: • 분 (0-59): 시간의 몇 분에 실행할지 지정 • 시 (0-23): 하루 중 몇 시에 실행할지 지정 (0 = 자정) • 일 (1-31): 한 달 중 며칠에 실행할지 지정 • 월 (1-12): 일 년 중 몇 월에 실행할지 지정 • 요일 (0-6): 일주일 중 무슨 요일에 실행할지 지정 (0 = 일요일, 6 = 토요일) 🔤 특수 문자 설명 `*` (애스터리스크) - 모든 값 • 해당 필드의 모든 가능한 값을 의미합니다 • 예: 분 필드에 * 사용 시 매분마다 실행 `*/n` (슬래시) - 간격 • n마다 실행을 의미합니다 • 예: */5는 5마다 (5, 10, 15, 20...) • 분 필드: */5 = 5분마다, 시 필드: */2 = 2시간마다 `n-m` (하이픈) - 범위 • n부터 m까지의 범위를 지정합니다 • 예: 1-5 = 1, 2, 3, 4, 5 • 요일 필드: 1-5 = 월요일부터 금요일까지 (평일) `n,m,o` (쉼표) - 복수 값 • 여러 개의 특정 값을 지정합니다 • 예: 1,15 = 1일과 15일 • 요일 필드: 0,6 = 일요일과 토요일 (주말) 📌 실전 예제 `0 9 * * *` → 매일 오전 9시에 실행 `*/15 * * * *` → 15분마다 실행 `0 */2 * * *` → 2시간마다 실행 (0시, 2시, 4시...) `0 9 * * 1-5` → 평일(월~금) 오전 9시에 실행 `0 0 1 * *` → 매월 1일 자정에 실행 `30 14 * * 0` → 매주 일요일 오후 2시 30분에 실행 `0 0,12 * * *` → 매일 자정과 정오에 실행 `0 9-17 * * 1-5` → 평일 9시부터 17시까지 매시간 실행 ⚠️ 주의사항 1. 일(day)과 요일(weekday) 필드를 동시에 지정하면 OR 조건으로 동작합니다 • `0 0 1 * 0` = 매월 1일 OR 매주 일요일 자정 2. 월과 일 필드는 1부터 시작하지만, 분/시/요일은 0부터 시작합니다 • 분: 0-59, 시: 0-23, 일: 1-31, 월: 1-12, 요일: 0-6 3. 요일은 0(일요일)부터 6(토요일)까지입니다 • 일부 시스템에서는 7도 일요일을 의미할 수 있습니다 4. 2월의 29/30/31일, 31일이 없는 달의 31일은 실행되지 않습니다
💡 Cron 표현식 실전 활용 가이드 🎯 일반적인 사용 사례 1. 백업 자동화 • `0 2 * * *` - 매일 새벽 2시에 일일 백업 • `0 3 * * 0` - 매주 일요일 새벽 3시에 주간 백업 • `0 4 1 * *` - 매월 1일 새벽 4시에 월간 백업 2. 데이터베이스 유지보수 • `0 1 * * *` - 매일 새벽 1시에 DB 정리 작업 • `30 2 * * 0` - 매주 일요일 새벽 2시 30분에 인덱스 재구성 • `0 0 1 */3 *` - 3개월마다 1일 자정에 아카이빙 3. 보고서 생성 • `0 9 * * 1` - 매주 월요일 오전 9시에 주간 보고서 • `0 10 1 * *` - 매월 1일 오전 10시에 월간 보고서 • `0 8 1 1 *` - 매년 1월 1일 오전 8시에 연간 보고서 4. 로그 관리 • `0 0 * * *` - 매일 자정에 로그 로테이션 • `*/30 * * * *` - 30분마다 로그 압축 및 정리 • `0 3 * * 0` - 매주 일요일 새벽 3시에 오래된 로그 삭제 5. 모니터링 및 알림 • `*/5 * * * *` - 5분마다 시스템 상태 확인 • `*/10 * * * *` - 10분마다 디스크 용량 체크 • `0 */4 * * *` - 4시간마다 서비스 헬스체크 ⚙️ 성능 최적화 팁 1. 부하 분산 • 많은 작업이 0분에 몰리지 않도록 시작 시간을 분산하세요 • 나쁜 예: `0 * * * *` (매시 정각) • 좋은 예: `7 * * * *` (매시 7분) - 부하 분산 2. 리소스 고려 • CPU 사용량이 높은 작업은 트래픽이 적은 새벽 시간대에 실행 • `0 3 * * *` - 새벽 3시 (서버 유휴 시간) 3. 중복 실행 방지 • 작업 실행 시간이 간격보다 길면 중복 실행 위험 • 실행 시간을 고려하여 충분한 간격 설정 🔍 디버깅 팁 1. 테스트는 짧은 간격으로 • 개발 중에는 `*/1 * * * *` (매분)로 테스트 • 확인 후 실제 스케줄로 변경 2. 로그 확인 • Cron 작업의 로그를 반드시 기록하세요 • 실패 시 이메일 알림 설정 고려 3. 시간대 확인 • 서버의 시간대(timezone)를 확인하세요 • UTC와 로컬 시간 차이에 주의 🛡️ 보안 고려사항 1. 최소 권한 원칙 • Cron 작업은 필요한 최소 권한으로만 실행 • root 권한이 필요한 경우가 아니면 일반 사용자로 실행 2. 경로 명시 • 절대 경로를 사용하여 스크립트 실행 • 나쁜 예: `backup.sh` • 좋은 예: `/home/user/scripts/backup.sh` 3. 환경 변수 • Cron 환경은 제한적이므로 필요한 환경 변수를 명시 • PATH, HOME 등을 스크립트 내에서 설정 📚 도구별 Cron 활용 1. Linux Crontab • `crontab -e` - cron 작업 편집 • `crontab -l` - 현재 cron 작업 목록 확인 • `/var/log/cron` - cron 로그 위치 2. Jenkins • Build Triggers에서 "Build periodically" 선택 • Cron 표현식으로 빌드 스케줄 설정 3. GitHub Actions • `schedule` 이벤트에서 cron 사용 • UTC 시간대 기준으로 동작 4. AWS CloudWatch Events • Rule 생성 시 Cron expression 사용 • 6개 필드 형식 사용 (초 포함) 5. Kubernetes CronJob • spec.schedule에 표준 cron 표현식 사용 • 분산 환경에서의 실행 관리

관련 도구 Related Tools