즉시 Cron 표현식 생성하기
분, 시, 일, 월, 요일 등 각 필드를 설정하면 바로 사용할 수 있는 crontab 라인과 쉬운 설명을 함께 얻을 수 있습니다.
모든 처리는 브라우저에서 직접 실행되며, 어떤 데이터도 외부로 전송되지 않고 스케줄이 저장되지도 않습니다.
Cron 표현식이란?
Cron 표현식은 유닉스 계열 시스템에서 명령을 정해진 시각, 날짜 또는 간격에 자동으로 실행하도록 예약하는 데 사용되는 다섯 개 필드로 구성된 패턴입니다.
각 필드는 분, 시, 일, 월, 요일이라는 서로 다른 시간 단위를 제어하며, 이들이 함께 작동하여 작업이 정확히 언제 실행되어야 하는지를 정의합니다.
Cron 필드 문법
| 분 | 0–59 |
| 시 | 0–23 |
| 일 | 1–31 |
| 월 | 1–12 |
| 요일 | 0–6 (0 = 일요일) |
특수 문자
| * | 모든 값 — 해당 필드가 가질 수 있는 모든 값과 일치 |
| , | 값 목록 구분자 — 예: 1,15는 1일과 15일을 의미 |
| - | 값의 범위 — 예: 1-5는 월요일부터 금요일까지를 의미 |
| / | 간격 값 — 예: */15는 15단위마다를 의미 |
Cron 생성기를 사용하는 이유
- 예약된 작업을 조용히 망가뜨리는 문법 오류 방지
- 스케줄을 배포하기 전에 쉬운 설명으로 미리 확인
- 처음부터 작성하는 대신 자주 쓰는 예제로 시작
- 선택적 명령어와 함께 바로 붙여넣을 수 있는 crontab 라인 제공
- 설치나 계정 등록이 필요 없음
Cron 표현식 만드는 방법
- 분, 시, 일, 월, 요일 필드를 설정하거나 자주 쓰는 예제를 선택하세요
- 필요하다면 실행할 명령어를 추가하세요
- 쉬운 설명을 확인해 스케줄이 올바른지 확인하세요
- crontab 라인을 복사해 crontab 파일에 붙여넣으세요
Cron 모범 사례
너무 자주 실행되는 스케줄보다는 구체적인 시간을 선호하세요 — 5분이나 15분마다로도 충분한 작업을 매분 실행하면 리소스가 낭비됩니다.
작업이 일(day of month)과 요일(day of week)에 모두 의존하는 경우, 대부분의 cron 구현체는 두 필드를 AND가 아니라 OR로 처리한다는 점을 기억하세요.
예약된 작업의 출력을 항상 로그로 남겨(예: 파일로 리다이렉트) 실패가 눈에 띄지 않고 지나가지 않도록 하세요.
일반적인 사용 사례
- 자동 데이터베이스 백업
- 로그 회전 및 정리 작업
- 예약된 보고서 생성
- 캐시 워밍 또는 무효화
- 주기적인 이메일 다이제스트 발송
- 시스템 간 데이터 동기화
- 상태 확인 및 모니터링 핑
- 인증서 또는 토큰 갱신
자주 묻는 질문
Cron 작업은 어떤 시간대를 기준으로 실행되나요?
기본적으로 cron은 시스템의 로컬 시간대를 사용합니다. 일부 플랫폼에서는 작업별 또는 crontab별로 특정 시간대를 지정할 수 있으니 시스템 문서를 확인하세요.
Cron 표현식에 초를 포함할 수 있나요?
표준 유닉스 cron은 초 필드 없이 분 이상의 다섯 개 필드만 지원합니다. Quartz와 같은 일부 스케줄러는 선택적인 초 필드를 지원하지만, 이는 다른 형식입니다.
일(day of month)과 요일(day of week)을 동시에 설정하면 어떻게 되나요?
대부분의 cron 구현체는 두 조건 중 하나만 일치해도(AND가 아니라 OR) 작업을 실행합니다. 특정 날짜이면서 동시에 특정 요일에만 실행하려면 일반적으로 스크립트 자체에 추가 로직이 필요합니다.
사용하기 전에 cron 표현식을 테스트하려면 어떻게 하나요?
여기에 표시된 쉬운 설명을 확인해 의도한 대로인지 확인한 뒤, 실제 시스템에서 짧은 테스트 스케줄로 검증하고 나서 운영 환경에서 사용하세요.
Cron과 systemd 타이머 중 무엇을 사용해야 하나요?
Cron은 단순하고 어디서든 작동하므로 간단한 반복 작업에 적합합니다. systemd 타이머는 더 많은 제어 기능(종속성, 로깅, 실행 실패 처리)을 제공하며, 이미 systemd를 사용하는 시스템에서는 좋은 선택입니다.