T도구모음

Cron 표현식 생성기

복잡한 Cron 스케줄링 문법을 UI로 쉽게 설정하고, 직관적인 한국어 텍스트로 해석합니다.

* * * * *

매분 실행

12026-04-18 14:44 (토)
22026-04-18 14:45 (토)
32026-04-18 14:46 (토)
42026-04-18 14:47 (토)
52026-04-18 14:48 (토)

Cron 표현식 생성기 -- POSIX 표준 스케줄링 문법 마스터

Cron은 유닉스/리눅스 시스템에서 작업을 정해진 시간에 자동 실행하기 위한 POSIX 표준 스케줄러입니다. 이 생성기는 5개 필드(분, 시, 일, 월, 요일)를 UI로 설정하여 Cron 표현식을 만들고, 한국어 해석과 다음 5회 실행 시각까지 미리보기합니다. 반대로 해석 모드에서는 기존 Cron 표현식을 입력하면 의미를 분석해 줍니다.

5필드 Cron 표현식 구조

필드허용 범위특수 문자예시
분(Minute)0 - 59* / , -*/5 → 5분마다
시(Hour)0 - 23* / , -9 → 오전 9시
일(Day of Month)1 - 31* / , -1,15 → 1일과 15일
월(Month)1 - 12* / , -1-6 → 1월~6월
요일(Day of Week)0 - 6 (일~토)* / , -1-5 → 평일

자주 쓰는 Cron 표현식 레시피

표현식의미활용
0 0 * * *매일 자정일간 백업, 로그 로테이션
0 9 * * 1-5평일 오전 9시업무 알림, 일일 리포트
*/5 * * * *5분마다모니터링, 헬스체크
0 0 1 * *매월 1일 자정월간 정산, 인보이스
0 */2 * * *2시간마다데이터 동기화, 캐시 갱신
30 4 * * 0매주 일요일 오전 4:30주간 풀 백업

Cron vs. systemd Timer

최신 리눅스 배포판(Ubuntu 20.04+, RHEL 8+)에서는 systemd timer가 Cron의 대안으로 제공됩니다. systemd timer는 의존성 관리, 로깅(journalctl), 정확한 실행 보장(Persistent=true) 등에서 장점이 있지만, 설정 파일이 2개(.service + .timer) 필요하여 진입 장벽이 높습니다. 간단한 스케줄링에는 Cron이, 복잡한 의존성이 있는 서비스 작업에는 systemd timer가 적합합니다.

클라우드 환경에서의 Cron

  • GitHub Actions: schedule 트리거에 동일한 Cron 문법 사용
  • AWS CloudWatch Events: cron(0 9 * * ? *) -- 6필드(초 미포함, 연도 포함)
  • Kubernetes CronJob: 표준 5필드 Cron 문법 그대로 사용
  • Google Cloud Scheduler: 표준 5필드 + 타임존 지정 가능

보안 및 운영 주의사항

  • Cron 작업이 실패해도 기본적으로 알림이 없으므로, MAILTO 변수 또는 별도 모니터링을 설정하세요.
  • 작업 스크립트에 절대 경로를 사용하고, 환경 변수를 명시적으로 선언하세요(PATH 등).
  • 동일 작업이 중복 실행되지 않도록 flock(잠금 파일)을 활용하세요.
  • 서버 타임존이 UTC인지 KST인지 확인하세요 -- Cron은 시스템 로컬 시간 기준입니다.

관련 도구

파일 권한 설정이 필요하면 chmod 계산기를, 서버 접속 키는 SSH 키 생성기를, 컨테이너 스케줄링은 Docker Compose 생성기를 활용하세요.

참고 자료

  • POSIX -- crontab specification (IEEE Std 1003.1)
  • man 5 crontab -- Linux manual page
  • systemd.timer -- freedesktop.org documentation
  • crontab.guru -- Cron 표현식 온라인 검증 도구

자주 묻는 질문

관련 도구