[Backend] Cron으로 주기적 작업 스케줄링하기

alirz-pixel·2025년 12월 17일

backend

목록 보기
10/11

Cron은 Unix 계열 운영체제에서 제공하는 작업 스케줄러(scheduler)이다.
특정 명령이나 스크립트를 정해진 시간 또는 주기마다 자동으로 실행하기 위해 사용된다.

사용법

Cron은 내부적으로 cron daemon (crond)이 백그라운드에서 실행되며,
crontab에 등록된 스케줄을 주기적으로 확인한다.

crontab -l   # 목록 보기
crontab -r   # 등록된 모든 crontab 삭제 
crontab -e   # 현재 사용자 crontab 편집

# ex) 매 5분마다 실행
*/5 * * * * /usr/bin/python3 /app/job.py

문법 정리

crontab은 "언제(스케줄) 무엇을(커맨드)" 실행할지 적는 설정이며, 형식은 아래와 같다.

# ┌─ 분(0-59)
# │ ┌─ 시(0-23)
# │ │ ┌─ 일(1-31)
# │ │ │ ┌─ 월(1-12)
# │ │ │ │ ┌─ 요일(0-7, 0과 7은 일요일)
# │ │ │ │ │
# * * * * *  실행할_명령어

필드값

각 시간 필드는 다음 표현을 조합해서 사용이 가능하다.

와일드카드 *

  • *: 와일드카드는 모든 값을 의미한다.
    ex) * * * * * -> 매 분마다 실행

단일값

  • <value>: value 값일 때만 실행
    ex) 0 5 * * * -> 매일 05:00에 실행

범위 -

  • <value1>-<value2>: value1부터 value2까지 실행
    ex) 0 5 * * 1-5 -> 평일 05:00에 실행

리스트 ,

  • <value1>,<value2>,.. -> 여러 값 지정 가능
    ex) 0 5 * * 1,3,5 -> 월/수/금 05:00에 실행

간격

  • */<value>: 매 value마다 실행
    ex) */10 * * * * -> 매 10분마다 실행

  • <value1>/<value2>: value1부터 시작해서 매 value2마다 실행
    ex) 1-30/5 * * * * -> 매 시간 01,06,11,16,21,26분에 실행

0개의 댓글