TL;DR

  • cron ν‘œν˜„μ‹μ€ λΆ„, μ‹œ, 일, μ›”, μš”μΌ 5개 ν•„λ“œλ‘œ μ‹€ν–‰ μ‹œκ°„μ„ μ§€μ •ν•˜λŠ” 포맷
  • * , - / λ“± 특수 κΈ°ν˜Έμ™€ 일-μš”μΌ OR 평가 방식 정리
  • λͺ©μ λ³„ ν‘œν˜„μ‹ μ˜ˆμ‹œ λͺ¨μŒ 제곡

크둠(cron) ν‘œν˜„μ‹μ΄λž€?

  • 일정 기반 μžλ™ν™”μ— μ“°λŠ” μ‹œκ°„ μ˜ˆμ•½ 포맷
  • 주둜 λ¦¬λˆ…μŠ€ crontab, Apache Airflow, Kubernetes CronJob, Jenkins λ“± μ›Œν¬ν”Œλ‘œ/μŠ€μΌ€μ€„λŸ¬μ—μ„œ μž‘μ—… μ‹€ν–‰ μ‹œκ°„μ„ μ§€μ •ν•  λ•Œ μ‚¬μš©
  • Airflow, k8s λ“±μ—μ„œλŠ” μ‹€ν–‰ λͺ…λ Ήμ–΄ λŒ€μ‹  5개 μ‹œκ°„ ν•„λ“œλ§Œ μ‚¬μš©
  • ν”νžˆ β€œcron schedule”, β€œcron expression”이라고 뢀름

κΈ°λ³Έ ꡬ쑰 : β€˜λΆ„ μ‹œ 일 μ›” μš”μΌβ€™

  • 각 ν•„λ“œλŠ” μ•„λž˜ ν‘œ κΈ°μ€€μœΌλ‘œ μˆœμ„œλŒ€λ‘œ μž…λ ₯함
ν•„λ“œν—ˆμš© λ²”μœ„μ˜λ―Έ
λΆ„0-59minute
μ‹œ0-23hour
일1-31day of month
μ›”1-12 or JAN-DECmonth
μš”μΌ0-7 or SUN-SATday of week (0κ³Ό 7은 Sunday)
특수 기호
  • * : λͺ¨λ“  κ°’
  • , : μ—¬λŸ¬ κ°’ μ§€μ •
  • - : λ²”μœ„ μ§€μ •
  • / : μ£ΌκΈ° μ§€μ • (간격)
  • ? : 일과 μš”μΌ ν•„λ“œ 쀑 ν•˜λ‚˜λ₯Ό λ¬΄μ‹œν•  λ•Œ μ‚¬μš© (Quartz λ“± ν™•μž₯)1
  • L : λ§ˆμ§€λ§‰ λ‚  ν˜Ήμ€ λ§ˆμ§€λ§‰ μš”μΌ (ν™•μž₯)
  • # : μ›”μš”μΌ#3 β†’ μ…‹μ§Έ μ›”μš”μΌμ²˜λŸΌ n번째 μš”μΌ μ§€μ • (ν™•μž₯)
평가 방식과 주의점
  • 5개 μ‹œκ°„ ν•„λ“œλŠ” μ™Όμͺ½μ—μ„œ 였λ₯Έμͺ½ 순으둜 평가
  • β€œμΌβ€κ³Ό β€œμš”μΌβ€μ΄ λͺ¨λ‘ μ§€μ •λ˜λ©΄ OR κ΄€κ³„λ‘œ λ™μž‘ (λ‘˜ 쀑 ν•˜λ‚˜λ§Œ λ§žμ•„λ„ μ‹€ν–‰)
  • μ‹œμŠ€ν…œ/도ꡬ별 ν™•μž₯ 기호 지원 μ—¬λΆ€ λ‹€λ₯Ό 수 μžˆμœΌλ‹ˆ 곡식 λ¬Έμ„œ μ°Έκ³ ν•΄μ•Ό 함

μ˜ˆμ‹œ λͺ¨μŒ

λͺ©μ ν‘œν˜„μ„€λͺ…
λ§€ λΆ„λ§ˆλ‹€* * * * *1λΆ„λ§ˆλ‹€ μ‹€ν–‰
맀일 03:1515 3 * * *맀일 03μ‹œ 15λΆ„
평일 18μ‹œ 정각0 18 * * 1-5μ›”~금 18:00
주말 μžμ •0 0 * * 6,0ν†  00:00, 일 00:00
10λΆ„λ§ˆλ‹€*/10 * * * *10λΆ„ 간격
λ§€μ›” 1일 02:000 2 1 * *맀달 1일 02:00
λΆ„κΈ°λ§ˆλ‹€ 첫째날 04:3030 4 1 1,4,7,10 *1Β·4Β·7Β·10μ›” 1일 04:30
λ§€λ…„ 12-31 23:5959 23 31 12 *연말 μžμ • 1λΆ„ μ „
λ§€μ£Ό μ›”μš”μΌ 09:000 9 * * 1μ›” 09:00
νŠΉμ • μš”μΌ n번째0 8 ? * MON#2λ‘˜μ§Έ μ›”μš”μΌ 08:00 (ν™•μž₯)

Footnotes

  1. ν™•μž₯이 뢙은 것은 ν‘œμ€€ λ¦¬λˆ…μŠ€ crontabμ—λŠ” μ—†λŠ” κΈ°λŠ₯ ↩