날씨 정보를 불러오는 중...

Crontab 생성기

다섯 칸을 채우면 cron 표현식이 만들어지고, 아래에 언제 실행되는지 한글로 풀어서 보여줍니다.

cron 표현식
0 3 * * *
실행 시점
매일 03시 00분에 실행됩니다.
crontab 등록 예시
0 3 * * * /usr/local/bin/backup.sh
다섯 칸의 의미
*  *  *  *  *
│  │  │  │  └─ 요일 (0-6, 0=일요일)
│  │  │  └──── 월 (1-12)
│  │  └─────── 일 (1-31)
│  └────────── 시 (0-23)
└───────────── 분 (0-59)
기호 사용법
  • * — 모든 값. 시 칸에 넣으면 "매시".
  • */5 — 5 간격. 분 칸에 넣으면 5분마다.
  • 1,15 — 1과 15에만. 일 칸에 넣으면 매월 1일과 15일.
  • 9-18 — 9부터 18까지. 시 칸에 넣으면 업무시간 동안 매시.
자주 하는 실수

일과 요일을 동시에 지정하면 OR 조건입니다. 0 0 1 * 1은 "매월 1일이면서 월요일"이 아니라 "매월 1일 또는 매주 월요일"로 동작합니다. 둘 중 하나만 쓰는 편이 안전합니다.

cron의 PATH는 로그인 셸과 다릅니다. 터미널에서 잘 되던 스크립트가 cron에서만 "command not found"로 실패하는 대표적인 원인입니다. 명령어를 /usr/local/bin/xxx처럼 절대경로로 쓰거나, 스크립트 안에서 PATH를 직접 지정하세요.

%는 특수문자입니다. date +%Y%m%d를 crontab에 그대로 쓰면 줄바꿈으로 해석되어 깨집니다. \%로 이스케이프하거나 스크립트 파일로 빼세요.

쿠버네티스 CronJob에서도 같은 표현식을 씁니다

문법은 동일하지만 기본 타임존이 UTC라는 점이 다릅니다. 한국 시간 기준으로 돌리려면 spec.timeZone: Asia/Seoul을 명시해야 합니다. 이걸 빠뜨리면 의도한 시각보다 9시간 어긋나 실행됩니다.

apiVersion: batch/v1
kind: CronJob
metadata:
  name: my-job
spec:
  schedule: "0 3 * * *"
  timeZone: Asia/Seoul
등록·확인 명령어
  • crontab -e — 내 크론탭 편집
  • crontab -l — 등록된 목록 확인
  • crontab -r — 전체 삭제 (되돌릴 수 없으니 주의)

← 도구 전체 보기