본문 바로가기
Infra/Linux

[Linux; 리눅스] Linux / 리눅스 / Crontab / 크론탭 / 시간 예제

by daddydontsleep 2023. 10. 24.
728x90
728x90

Linux  Tux

소프트웨어 유틸리티 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]

https://crontab.guru/

 

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

https://docs.aws.amazon.com/ko_kr/eventbridge/latest/userguide/eb-create-rule-schedule.html#CronExpressions

 

아마존 만들기EventBridge일정에 따라 실행되는 규칙 - 아마존 EventBridge

EventBridge스케줄러는 하나의 중앙 관리형 서비스에서 작업을 생성, 실행, 관리할 수 있는 서버리스 스케줄러입니다. 이벤트 버스 및 규칙과 관계없이 일회성 및 반복 스케줄링 기능을 제공합니다

docs.aws.amazon.com

 

728x90
300x250