[Linux] Crontab

시작하며

항상 크론탭(Crontab) 문법을 작성할 일이 있으면 햇갈려서 그때 그때 다시 찾아봤어야 했었다. 최근 공부 중에 쉽게 크론탭 문법을 작성해주는 사이트를 알게되어 기록해둔다.

Crontab 이란

유닉스 및 리눅스 시스템에서 일정한 간격으로 반복적으로 작업을 실행하기 위해 사용되는 명령어이다. 백업, 리포트 생성과 같이 정기적인 잡업을 수행하기 위해 주로 사용한다.

Cron expression 문법

Unix 기반 시스템 Cron expression

 ┌───────────── 분 (0 - 59)
 │ ┌───────────── 시 (0 - 23)
 │ │ ┌───────────── 일 (1 - 31)
 │ │ │ ┌───────────── 월 (1 - 12)
 │ │ │ │ ┌───────────── 요일 (0 - 6) (일요일부터 토요일까지;
 │ │ │ │ │                            특정 시스템에서는 7도 일요일)
 │ │ │ │ │                            또는 sun, mon, tue, wed, thu, fri, sat
 │ │ │ │ │
 * * * * *
항목 설명 상응 표현
@yearly (or @annually) 매년 1월 1일 자정에 실행 0 0 1 1 *
@monthly 매월 1일 자정에 실행 0 0 1 * *
@weekly 매주 일요일 자정에 실행 0 0 * * 0
@daily (or @midnight) 매일 자정에 실행 0 0 * * *
@hourly 매시 0분에 시작 0 * * * *

Spring Cron expression

@Scheduled(cron = "${cron.expression}") 형식으로 spring 에서 사용 가능하다.

 ┌───────────── 초 (0-59)
 │ ┌───────────── 분 (0 - 59)
 │ │ ┌───────────── 시 (0 - 23)
 │ │ │ ┌───────────── 일 (1 - 31)
 │ │ │ │ ┌───────────── 월 (1 - 12) (or JAN-DEC)
 │ │ │ │ │ ┌───────────── 요일 (0 - 7)
 │ │ │ │ │ │              (0 or 7 is Sunday, or MON-SUN)
 │ │ │ │ │ │
 * * * * * *
항목 설명 상응 표현
@yearly (or @annually) 매년 1월 1일 자정에 실행 0 0 0 1 1 *
@monthly 매월 1일 자정에 실행 0 0 0 1 * *
@weekly 매주 일요일 자정에 실행 0 0 0 * * 0
@daily (or @midnight) 매일 자정에 실행 0 0 0 * * *
@hourly 매시 0분에 시작 0 0 * * * *

crontab 쉽게 작성하기

https://crontab.guru/

크론탭(crontab) 기본 명령어

# crontab 확인
crontab -l

# crontab 입력, 수정
crontab -e
# vi 파일이 열리면 아래와 같이 작업을 입력한다. 
* * * * * command
* * * * * ls # 매분마다 ls

# crontab 삭제
crontab -r

마치며

참고

 
반응형

댓글

Designed by JB FACTORY