DevToolPal
한국어

Cron 표현식

30초마다

cron은 1분 미만 간격을 지정할 수 없어서 보통 crontab에 두 줄을 씁니다. 한 줄은 매분 정각에, 다른 한 줄은 30초 sleep 후에 실행합니다.

* * * * * Cron 표현식 파서에서 열기

표준 cron에는 초 필드가 없습니다. 두 줄짜리 crontab으로 1분에 두 번 실행할 수 있고, Quartz와 Spring은 초를 직접 지원합니다. Kubernetes와 GitHub Actions는 이렇게 자주 실행할 수 없습니다.

필드별 설명

필드 값 해당 값
분 * 모든 값
시 * 모든 값
일 * 모든 값
월 * 모든 값
요일 * 모든 값

다음 실행 시간

예시: 2026년 1월 1일 이후 처음 6회 실행(UTC).

  1. 2026년 1월 1일 (목) 00:01:00
  2. 2026년 1월 1일 (목) 00:01:30
  3. 2026년 1월 1일 (목) 00:02:00
  4. 2026년 1월 1일 (목) 00:02:30
  5. 2026년 1월 1일 (목) 00:03:00
  6. 2026년 1월 1일 (목) 00:03:30

바로 쓰는 버전

crontab
* * * * * /path/to/command
* * * * * sleep 30; /path/to/command

crontab -e로 이 줄을 추가하세요. CRON_TZ나 TZ를 설정하지 않으면 서버 시간대로 실행됩니다.

Kubernetes CronJob: 이 스케줄러로는 이 일정을 실행할 수 없습니다.

GitHub Actions: 이 스케줄러로는 이 일정을 실행할 수 없습니다.

GitHub Actions는 항상 UTC를 쓰고 최소 간격은 5분이며, 부하가 크면 예약 실행이 늦게 시작될 수 있습니다.

Quartz
0/30 * * * * ?

Quartz는 맨 앞에 초를 두고, 일 또는 요일 중 하나에 ?가 필요합니다. 요일은 일요일부터 1–7이므로 영문 약어가 더 안전합니다.

Spring
@Scheduled(cron = "*/30 * * * * *")

Spring @Scheduled(cron = …)는 초와 일반 다섯 필드, 모두 여섯 필드를 씁니다.

자주 묻는 질문

› 30초마다 실행하는 cron 표현식이 있나요?

표준 5필드 cron에는 없습니다. crontab 두 줄(하나는 sleep 30), OnUnitActiveSec=30s인 systemd 타이머, 또는 Quartz의 0/30 * * * * ?를 쓰세요.

› * * * * *는 어느 시간대로 실행되나요?

Cron은 실행하는 머신이나 서비스의 시간대를 씁니다. Linux에서는 CRON_TZ나 TZ를 설정하지 않으면 시스템 시간대, Kubernetes CronJob은 spec.timeZone을 지원하고, GitHub Actions는 항상 UTC입니다.

› 배포 전에 일정을 확인하려면 어떻게 하나요?

이 사이트의 Cron 표현식 파서에서 * * * * *를 여세요. 각 필드를 설명하고 앞으로의 실행 시간을 현지 시간 또는 UTC로 보여 줍니다. 모두 브라우저에서 처리됩니다.