특정한 시간에 또는 특정 시간 마다 어떤 작업을 자동으로 수행하게 해주고 싶을 때 사용하는 명령어 Cron
유닉스/리눅스 기반의 스케쥴러에도 사용되지만 Quatz 스케줄러 에서도 사용된다. 크론 표현식은 필드와 특수문자를 조합하여 스케쥴링을 조절할 수 있다.
시스템 크론 : cron 시스템에서는 시스템에서 기본적으로 사용하는 cron 설정이 있다.
사용자 크론 : root나 일반 사용자가 자신의 cron 설정을 직접하여 사용하는 사용자 크론이 있다.
크론잡은 매일 오후 6시에 특정 파드를 실행시키는 등 지정한 일정에 따라 잡을 실행 시킬 수 있습니다.
쿠버네티스의 job
잡은 하나 이상의 파드를 지정하고 지정된 수의 파드를 성공적으로 실행하도록 하는 설정 입니다.
노드의 H/W 장애나 재부팅 등으로 인해 파드가 정상 실행이 되지 않았을 경우 job은 새로운 파드를 시작하도록 할 수 있습니다.
백업이나 특정 배치 파일들처럼 한번 실행하고 종료되는 성격의 작업에 사용될 수 있습니다
cron 작업을 설정하는 파일
cron 프로세스는 /etc/crontab 파일에 설정된 것을 읽어서 작업을 수행
crontab 파일은 OS 별로 각각 다른 위치에 저장된다.
크론 표현식은 아래와 같은 형태로 구성된다. 리눅스/유닉스 크론 표현식에서는 5개 필드가 사용되고, 쿼츠 크론 표현식에서는 7개의 필드가 사용된다.
, - /
, - /
, - /
, - ? L W
, - /
, - ? L #
, - /
?
: 특정 값이 아닌 어떤 값이든 상관 없음,
: 여러 값을 지정할 때/
: 증분값, 즉 초기값과 증가치를 설정할 때L
: 지정할 수 있는 범위의 마지막 값 표시W
: 가장 가까운 평일(weekday)을 설정할 때#
: N번 째 특정 요일을 설정할 때0 0/10 * * * *
Bash
0 0 0/3 * * *
Bash
0 30 14 * * * 2022
Bash
0 0/10 10-19 * * *
Bash
0 0/10 10,19 * * *
Bash
0 30 1 25 * *
Bash
0 10 10-19 ? * MON,FRI
Bash
0 30 15 L * *
Bash
0 20 13 ? * 6L 2021-2022