ABOUT ME

-

Today
-
Yesterday
-
Total
-
  • crontab
    기타 2022. 4. 24. 19:34

    crontab

    특정 시간이나 주기별로 실행되는 command를 관리하는 툴

     

    기본 형태

    crontab [ -u user ] file
    crontab [ -u user ] { -l | -r | -e }
    crontab [ -u user ] [ -i ] { -e | -l | -r }
    crontab [ -u user ] [ -l | -r | -e ] [ -i ] [ -s ]

    -u 옵션으로 crontab을 실행 시킬 유저를 명시할 수 있고 그렇지 않으면 기본 유저로 실행된다.

     

    크론 테이블

    * * * * * command_to_execute
    | | | | |
    | | | | |
    | | | | DayOfTheWeek(0-6) (0은 일요일)
    | | | Month(1-12)
    | | DayOfMonth(1-31)
    | Hour(0-23)
    Min(0-59)

    위와 같이 각각 분/시/날/월/요일의 순서로 날짜와 주기를 지정해줄 수 있다.

     

    각 필드에 여러 값 설정하기

    • asterisk(*): 모든 값. 필드에 *를 설정하면 매 분, 매 시, 매일 과 같은 의미가 된다.
    • comma (,): comma로 여러개의 값을 줄 수도 있다. 분 필드에 1,3,4,6과 같이 값을 주면 1분 3분 4분 6분이라는 뜻이다.
    • dash (-): 특정 범위의 값을 나타낸다. 1-3 은 1,2,3과 같다.
    • slash (/): 주어진 수만큼의 값을 건너 뛴다. */3을 시간 필드에 명시해두었다면 0시부터 3시간마다 동작한다는 뜻이다.

     

    옵션

    crontab -e: 크론잡 생성 및 업데이트

    crontab -l: 현재 등록되어있는 크론 작업으 ㅣ리스트

    crontab -r: 크론탭 작업 제거

     

    예제

    0 12 * * * sample.sh 1>/dev/null 2>&1 매일 12시에 sample.sh 실행
    * * * * * sample.sh // 매 분마다 실행
    */10 * * * * sample.sh // 매 10분마다 실행
    * * * jan,may,aug * sample.sh // 1월,5월,8월에 실행
    0 2 * * sun [ $(date +%d) -ge 23 ] && sample.sh // 마지막 주 일요일 2시에 실행
    * * * * * sleep 30; sample.sh 30초마다 실행

     

     

    Reference

    https://www.tutorialspoint.com/unix_commands/crontab.htm

    댓글

Designed by Tistory.