소프트웨어 유틸리티 cron은 유닉스 계열 컴퓨터 운영 체제의 시간 기반 잡 스케줄러이다.
소프트웨어 환경을 설정하고 관리하는 사람들은 작업을 고정된 시간, 날짜, 간격에 주기적으로 실행할 수 있도록 스케줄링하기 위해 cron을 사용한다.
cron은 셸 명령어들이 주어진 일정에 주기적으로 실행하도록 규정해놓은 crontab (cron table) 파일에 의해 구동된다.
crontab 파일들은 잡 목록 및 cron 데몬에 대한 다른 명령들이 보관된 위치에 저장되어 있다.
사용자들은 자신들만의 개개의 crontab 파일들을 가질 수 있으며, 가끔은 /etc 또는 /etc 하위 디렉터리에 시스템 관리자들만이 편집할 수 있는, 시스템 전반에 영향을 미치는 crontab 파일이 존재하는 경우도 있다.
( 예제 )
다음은 cron 사용자의 기본 셸이 본 셸 호환이라는 가정 하에 매일 자정 이후 1분 째에 아파치 오류 로그를 삭제한다.
1 0 * * * printf > /var/log/apache/error_log
아래의 예는 매일 20시 (오후 8시)에 export_dump.sh 라는 셸 프로그램을 실행한다.
0 20 * * * /home/oracle/script/export_dump.sh
사용자를 위한 구성 파일은 crontab -e 를 호출하여 편집할 수 있다.
이 파일의 문법은 다음과 같다.
# ┌───────────── min (0 - 59)
# │ ┌────────────── hour (0 - 23)
# │ │ ┌─────────────── day of month (1 - 31)
# │ │ │ ┌──────────────── month (1 - 12)
# │ │ │ │ ┌───────────────── day of week (0 - 6)
# │ │ │ │ │ (0 to 6 are Sunday to Saturday, or use names;
# │ │ │ │ │ 7 is Sunday, the same as 0)
# * * * * * command to execute
1 11 3 * * <SHELL_PATH>
- 첫 번째
- min ( 0 - 59 ) 몇 분에 실행할지 설정
- * 로 설정할 경우 매분(1분 마다) 실행
- 1 * * * * 의 경우 매일 매시 01분에 실행
- 두 번째
- hour ( 0 - 23 ) 몇 시에 실행할지 설정
- *로 설정할 경우 매시(1시간 마다) 실행
- 1 11 * * * 의 경우 매일 11시 01분에 실행
- 세 번째
- day of month ( 1 - 31 ) 며칟날에 실행할 건지 설정
- *로 설정할 경우 매일 실행
- 1 11 3 * * 의 경우 03일 11시 01분에 실행
- 네 번째
- month ( 1 - 12) 몇 월에 실행할 건지 설정
- *로 설정할 경우 매월 실행
- 1 11 3 5 * 의 경우 05월 03일 11시 01분에 실행
- 다섯 번째
- day of week ( 0 - 6 ) 무슨 요일에 실행할 건지 설정
- *로 설정할 경우 요일에 상관없이 매일 실행
- 0 ~ 6 사이의 값을 설정 (0: 일요일, 6: 토요일, 7: 일요일)
- 1 11 3 * 3 의 경우 매달 03일 11시 01분 수요일에 실행
Examples
Expressions | Desc |
* * * * * | 매일 1분마다 실행 |
5 * * * * | 매일 매시간 05분에 실행 (1시간 간격으로 실행) |
*/5 * * * * | 매일 5분마다 실행 |
*/10 * * * * | 매일 10분마다 실행 |
0,10,20,30,40,50 * * * * | 매일 10분마다 실행 |
0 18 * * * | 매일 18시 00분에 실행 |
45 22 * * * | 매일 22시 45분에 실행 |
28 03 * * * | 매일 03시 28분에 실행 |
* 1 * * * | 매일 01시 00분 ~ 01시 59분 사이에 1분 간격으로 실행 |
0 */1 * * * | 매일 1시간 간격으로 실행 (매시간 00분) |
0 */12 * * * | 매일 12시간마다 실행 |
0 6,12 * * * | 매일 06시, 12시에 실행 |
10 2-5 * * * | 매일 02시 ~ 05시 사이 매시간 10분에 실행 (02시 10분, 03시 10분, 04시 10분, 05시 10분) |
5 8-20/3 * * * | 매일 08시 ~ 20시 사이 3시간 간격으로 05분에 실행 (08시 05분, 11시 05분, 14시 05분, 17시 05분) |
42 4 10 * * | 매달 10일 04시 42분에 실행 |
30 5 1,15 * * | 매달 1일과 15일 05시 30분에 실행 |
0-10 17 1 * * | 매달 1일 17시 00분 ~ 17시 10분까지 1분 단위로 실행 |
0 17 * * 1 | 매주 월요일 17시 00분에 실행 |
0,10 17 * * 0,2,3 | 매주 일,화,수요일 17시 00분과 17시 10분에 실행 |
0 0 1,15 * 1 | 매달 1일과 15일 그리고 월요일 24시 00분에 실행 |
0 6,12 * * 0,3 | 수,일요일마다 06시, 12시에 실행 |
0 21 * * 1-6 | 월 ~ 토 21시 00분에 실 |
[reference]
Crontab.guru - The cron schedule expression editor
crontab.guru
https://ko.wikipedia.org/wiki/Cron
cron - 위키백과, 우리 모두의 백과사전
위키백과, 우리 모두의 백과사전.
ko.wikipedia.org
https://velog.io/@jay2u8809/Crontab크론탭-시간-설정
Crontab(크론탭) 시간 설정
Crontab의 시간 설정 > 배치Batch처럼 특정 시간에 정기적으로 Shell Script나 프로그램을 실행 시키기 위한 Crontab 시간 설정을 알아본다. Desc 기본적으로 아래와 같이 공백(space)으로 5개 값을 구분하여
velog.io
https://pubs.opengroup.org/onlinepubs/9699919799/utilities/crontab.html
crontab
The crontab utility shall create, replace, [UP] or edit a user's crontab entry; a crontab entry is a list of commands and the times at which they shall be executed. The new crontab entry can be input by specifying file or input from standard input if n
pubs.opengroup.org
아마존 만들기EventBridge일정에 따라 실행되는 규칙 - 아마존 EventBridge
EventBridge스케줄러는 하나의 중앙 관리형 서비스에서 작업을 생성, 실행, 관리할 수 있는 서버리스 스케줄러입니다. 이벤트 버스 및 규칙과 관계없이 일회성 및 반복 스케줄링 기능을 제공합니다
docs.aws.amazon.com
'Infra > Linux' 카테고리의 다른 글
[Linux; 리눅스] 서비스 상태 확인 / 시작 / 중지 / 재시작 명령 (0) | 2023.10.24 |
---|