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은 일요일)
# │ │ │ │ │
# * * * * * 실행할_명령어
각 시간 필드는 다음 표현을 조합해서 사용이 가능하다.
*: 와일드카드는 모든 값을 의미한다.* * * * * -> 매 분마다 실행<value>: value 값일 때만 실행0 5 * * * -> 매일 05:00에 실행<value1>-<value2>: value1부터 value2까지 실행0 5 * * 1-5 -> 평일 05:00에 실행<value1>,<value2>,.. -> 여러 값 지정 가능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분에 실행