본문 바로가기
2.1 CS/기타

Cron 표현식

by Dohi._. 2024. 10. 9.
728x90

 

Cron 표현식이란?

크론(Cron)은 리눅스 및 유닉스 기반 시스템에서 작업 스케줄링을 위해 사용되는 유틸리티입니다.

크론 표현식(Cron Expression)은 이러한 작업을 자동화하고, 주기적으로 실행하기 위해 사용되는 형식으로, 날짜와 시간을 기반으로 작업을 예약할 수 있습니다. 이를 활용하면 특정 시간에 명령어, 스크립트 등을 자동으로 실행하도록 설정할 수 있습니다.

 

Cron 표현식의 기본 구조

Cron 표현식은 일반적으로 5개(리눅스/유닉스 크론표현식) 또는6~7개 (Quatz 크론표현식) 의 필드로 구성됩니다.

각 필드는 특정 시간 단위(분, 시, 일, 월, 요일 등)를 나타내며, 그 값에 따라 작업이 언제 실행될지를 정의합니다. 다음은 5필드 기반의 크론 표현식 구조입니다.

분   시   일   월   요일

각각의 필드는 다음 범위의 값을 가질 수 있습니다:

  • 분 (Minute): 0 - 59
  • 시 (Hour): 0 - 23
  • 일 (Day of the Month): 1 - 31
  • 월 (Month): 1 - 12 (또는 Jan - Dec)
  • 요일 (Day of the Week): 0 - 6 (0: 일요일, 6: 토요일 또는 Sun - Sat)

또한  Quatz 스케줄러기준 ( Quatz 크론표현식)

초  분   시   일   월   요일  년(생략가능)
  • 초(Second): 0-59   리눅스/ 유닉스에서는 사용되지 않음
  • 분 (Minute): 0 - 59
  • 시 (Hour): 0 - 23
  • 일 (Day of the Month): 1 - 31
  • 월 (Month): 1 - 12 (또는 Jan - Dec)
  • 요일 (Day of the Week): 0 - 6 (0: 일요일, 6: 토요일 또는 Sun - Sat)
  • 년도(Year)  : 생략가능 or 1970-2099  리눅스 유닉스에서 사용되지 않음

예시 Cron 표현식 (리눅스/유닉스기준)

1. 매일 오전 12시에 실행

0 0 * * *
  • 설명: 매일 자정(00:00)에 작업을 실행.

2. 매주 월요일 오전 8시에 실행

0 8 * * 1
  • 설명: 매주 월요일 오전 8시에 작업을 실행.

3. 매월 1일 자정에 실행

0 0 1 * *
  • 설명: 매월 1일 자정(00:00)에 작업을 실행.

4. 주중(월-금) 매일 오후 5시에 실행

0 17 * * 1-5
  • 설명: 매주 월요일부터 금요일까지 매일 오후 5시에 작업을 실행.

5. 매 15분마다 실행

0/15 * * * *
  • 설명: 매 15분마다 작업을 실행.

 

Cron 표현식의 특수 문자

  1. *: 모든 값을 의미합니다. 예를 들어, *는 해당 필드의 모든 가능성을 의미합니다.
  2. ,: 여러 값을 나열할 때 사용합니다. 예를 들어, 0,15,30,45는 0, 15, 30, 45분에 실행됩니다.
  3. -: 범위를 나타냅니다. 예를 들어, 1-5는 월요일부터 금요일까지를 의미합니다.
  4. /: 간격을 나타냅니다. 예를 들어, 0/10은 매 10단위로 실행됩니다.
  5. ?: 특정 값이 없을 때 사용되며, 주로 월과 요일 필드에서 사용됩니다.
  6. L: 마지막 날을 의미합니다. 예를 들어, L은 해당 월의 마지막 날이나 주의 마지막 요일을 나타냅니다.

 

Cron 표현식 생성기 도구

복잡한 크론 표현식을 작성하는 것이 어렵다면, 다양한 온라인 크론 표현식 생성기 도구를 활용할 수 있습니다. 이러한 도구들은 사용자가 쉽게 원하는 스케줄을 설정할 수 있도록 직관적인 인터페이스를 제공합니다.

 

Cron 표현식 예시 모음

표현식 설명
0 0 * * * 매일 자정에 실행
0 9 * * 1 매주 월요일 오전 9시에 실행
0/30 * * * * 매 30분마다 실행
0 8 1 * * 매월 1일 오전 8시에 실행
0 12 * * 0 매주 일요일 정오에 실행

 

쿼츠 Cron 표현식 예시

0 5 * * * * 매시 5분

0 0/10 * * * * 10분에 한번씩

 

728x90

'2.1 CS > 기타' 카테고리의 다른 글

[IT] 보일러플레이트 코드 (Boilerplate Code)  (2) 2024.10.17
웹 크롤링 vs 웹 스크래핑  (0) 2024.10.05
[CS/기타] BackEnd, FrontEnd  (0) 2024.08.28
[CS/기타] 웹(WWW)  (0) 2024.08.28

댓글