Crontab 예제: 실제 일정
이론은 중요하지만 실제 사용 사례와 함께 cron 표현식을 맥락에서 보는 것이 구문을 이해하는 데 도움이 됩니다. 이 컬렉션은 간단한 자동화에서 복잡한 프로덕션 일정까지 직면하게 될 가장 일반적인 일정 시나리오를 다룹니다.
기본 시간 간격
매분: "* * * * *" - 고빈도 모니터링 또는 테스트에 사용(하지만 분 단위 실행으로 시스템 부하에 주의).
5분마다: "*/5 * * * *" - 큐 깊이 확인, 속도 제한이 있는 API 폴링 또는 캐시 업데이트와 같은 중간 빈도 작업에 일반적입니다.
10분마다: "*/10 * * * *" - 모니터링 대시보드 또는 로그 집계를 위해 응답성과 감소된 오버헤드의 균형을 맞춥니다.
15분마다: "*/15 * * * *" - 메트릭 수집, 임시 파일 정리 또는 세션 관리와 같은 분기별 작업.
30분마다: "*/30 * * * *" - 이메일 처리, 데이터 동기화 또는 중간 빈도 보고서를 위한 30분마다 확인.
매시간: "0 * * * *" - 시간별 작업은 정각에 실행됩니다. 로그 로테이션, 시간별 집계 또는 정기 백업에 일반적입니다.
2시간마다: "0 */2 * * *" - 포괄적인 상태 확인 또는 보조 백업과 같이 시간별 실행이 필요하지 않은 작업의 빈도 감소.
6시간마다: "0 */6 * * *" - 자정, 오전 6시, 정오, 오후 6시의 분기별 작업. 하루 종일 분산 처리에 유용합니다.
12시간마다: "0 */12 * * *" - 배치 처리 또는 데이터 내보내기와 같은 반일별 작업을 위해 자정과 정오에 하루에 두 번.
이러한 간격 패턴은 대부분의 예약 자동화의 기초를 형성합니다. 빈도를 선택할 때 적시성(변경 사항을 감지하거나 데이터를 처리해야 하는 속도)과 시스템 리소스(모든 작업이 CPU, 메모리 및 I/O를 소비함)의 균형을 맞추세요.
일일 및 주간 일정
자정 일일: "0 0 * * *" - 일일 백업, 로그 아카이빙, 데이터베이스 유지 관리 및 야간 배치 처리의 기본 시간.
오전 2시 일일: "0 2 * * *" - 많은 작업이 기본적으로 자정인 경우 충돌을 피하기 위해 자정에서 오프셋. 데이터베이스 최적화 또는 보고서 생성에 좋습니다.
오전 6시 일일: "0 6 * * *" - 하루를 준비하기 위한 업무 시간 전 처리. 캐시 워밍, 데이터 가져오기 또는 아침 보고서.
정오 일일: "0 12 * * *" - 점심 시간 보고서 또는 업무 시간 동안 업데이트가 필요한 시스템을 위한 정오 처리.
오후 6시 일일: "0 18 * * *" - 일일 요약, 내보내기 또는 야간 작업 준비를 위한 업무 종료 처리.
평일 오전 9시: "0 9 * * 1-5" - 평일 보고서 전송, 업무 시간 서비스 시작 또는 평일 전용 통합과 같은 월요일부터 금요일 아침 작업.
평일 저녁: "0 18 * * 1-5" - 평일에만 축적되는 비즈니스 데이터를 위한 근무일 종료 처리.
주말 아침: "0 8 * * 6,7" - 평일 부하를 피해야 하는 작업을 위한 토요일 및 일요일 처리.
월요일 아침: "0 9 * * 1" - 주간 시작 보고서 전송, 주간 캐시 정리 또는 월요일 특정 처리와 같은 주간 주 시작 작업.
금요일 저녁: "0 17 * * 5" - 주간 요약, 금요일 배포 또는 주말 내보내기를 위한 주말 처리.
일요일 저녁: "0 23 * * 0" - 주 시작 전 주간 처리. 전체 주간 백업, 포괄적인 유지 관리 또는 주말 아카이빙.
일일 패턴은 특히 전역 시스템에 대한 타임존 영향을 고려해야 합니다. UTC 자정의 작업은 전 세계 사용자에게 다른 로컬 시간에 실행됩니다.
월간 및 특수 일정
월초: "0 0 1 * *" - 월간 백업, 청구 주기, 월간 보고서 또는 구독 처리와 같은 월간 시작 작업.
월 중순: "0 0 15 * *" - 격주 급여, 월간 체크인 또는 월간 작업 분할을 위한 월 중순 처리.
월의 첫 번째 월요일: 표준 cron은 "첫 번째 월요일"을 표현할 수 없으므로 날짜를 확인하는 스크립트가 필요합니다. 처음 7일이 월요일일 때 실행되는 "0 0 1-7 * 1"을 사용한 다음 스크립트가 실제로 첫 번째 발생인지 확인합니다.
월의 마지막 날: 표준 cron은 이것을 직접 표현할 수 없습니다(확장 구문에서 "0 0 L * *"가 필요함). 매일 실행되고 내일이 1일인지 확인하는 스크립트를 사용하세요.
분기별(1월, 4월, 7월, 10월 1일): "0 0 1 1,4,7,10 *" - 분기별 보고서, 규정 준수 작업 또는 계절별 처리.
연간(1월 1일): "0 0 1 1 *" - 연간 아카이빙, 연간 보고서, 라이선스 갱신 또는 기념일 처리와 같은 연간 작업.
여름 달만(6월-8월): "0 0 * 6-8 *" - 특정 달 동안만 적용되는 계절별 작업.
업무 시간만(평일 오전 9시 - 오후 5시): "0 9-17 * * 1-5" - 고객 대면 시스템 또는 외부 통합을 위한 업무 시간 동안 시간별 작업.
야간 시간(오후 11시 - 오전 5시): "0 23-5 * * *" - 시스템 부하가 가장 낮을 때 야간 처리. 참고: 범위는 표준 cron에서 자정을 감싸지 않습니다; 대신 두 개의 항목 "0 23 * * *" 및 "0 0-5 * * *"를 사용하세요.
매 평일 여러 번(아침과 오후): "0 9,14 * * 1-5" - 정기 체크인을 위해 평일 오전 9시와 오후 2시에 하루에 두 번.
복잡한 일정은 종종 cron 구문이 표현할 수 있는 것 이상의 추가 날짜 확인을 수행하는 여러 cron 항목 또는 스크립트가 필요합니다.
도구 사용해보기
Crontab Generator