[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