본문 바로가기
Develops/Linux

[LINUX] crontab 명령어 (리눅스 크론탭 스케줄러)

by SLOTH91 2024. 3. 30.
반응형

매일 혹은 정기적으로 실행해야 하는 예약작업과 같은 일을 해 주는 명령어

 

특징

  • 윈도우의 스케줄러와 비슷하다.
  • cron은 간단한 텍스트 파일에 할 일들을 기록하는데, 관리자인가 아닌가에 따라서 기록할 곳이 달라진다.
    • 관리자 권한 있을 경우 : /etc/crontab 파일 편집
    • 관리자 권한 없을 경우 : 실행할 주체를 명시하지 않음 (crontab -e 명령어를 실행해서 파일 편집)

옵션

옵션 설명
-l 예약된 작업리스트 조회
-e 예약된 작업리스트 수정
-r 예약된 작업리스트 삭제
-u 사용자명 루트관리자는 해당 사용자 crontab 파일을 보거나 삭제, 편집 가능

 

주기설정

### 요일에서 0과 7은 일요일, 1부터 월요일이고 6이 토요일
*      *      *      *      *
분(0-59)  시간(0-23)  일(1-31)  월(1-12)   요일(0-7)
# ┌───────────── minute (0 - 59)
# │ ┌───────────── hour (0 - 23)
# │ │ ┌───────────── day of month (1 - 31)
# │ │ │ ┌───────────── month (1 - 12)
# │ │ │ │ ┌───────────── day of week (0 - 6) (Sunday to Saturday;
# │ │ │ │ │                                       7 is also Sunday on some systems)
# │ │ │ │ │
# │ │ │ │ │
# * * * * *  command_to_execute


###### Sample crontab ######
# Empty temp folder every Friday at 5pm
0 5 * * 5 rm -rf /tmp/*

# Backup images to Google Drive every night at midnight
0 0 * * * rsync -a ~/Pictures/ ~/Google\ Drive/Pictures/

 

특수문자

특수문자 설명
 * 모든 값
 ? 특정한 값이 없음 
 - 범위,=,=. (예) 월요일에서 수요일까지는 MON-WED로 표현
 , 특별한 값일 때만 동작 (예) 월,수,금 MON,WED,FRI 
 / 시작시간 / 단위  (예) 0분부터 매 5분 0/5
 L 일에서 사용하면 마지막 일, 요일에서는 마지막 요일(토요일)
 W 가장 가까운 평일 (예) 15W는 15일에서 가장 가까운 평일 (월 ~ 금)을 찾음
 # 몇째주의 무슨 요일을 표현 (예) 3#2 : 2번째주 수요일

 

예시

  • 매 분 실행
# 매분 test.sh 실행
* * * * * /home/script/test.sh
  • 특정 시간 실행
# 매주 금요일 오전 5시 45분에 test.sh 를 실행
45 5 * * 5 /home/script/test.sh
  • 반복 실행
# 매일 매시간 0분, 20분, 40분에 test.sh 를 실행
0,20,40 * * * * /home/script/test.sh
  • 범위 실행
# 매일 1시 0분부터 30분까지 매분 tesh.sh 를 실행
0-30 1 * * * /home/script/test.sh
  • 간격 실행
# 매 10분마다 test.sh 를 실행
*/10 * * * * /home/script/test.sh
  • 응용 예시
# 5일에서 6일까지 2시,3시,4시에 매 10분마다 test.sh 를 실행
*/10 2,3,4 5-6 * * /home/script/test.sh

 

 

 

 

[참고]

https://github.com/CoreyMSchafer/code_snippets/blob/master/Cron-Tasks/snippets.txt

https://jdm.kr/blog/2

https://danmilife.tistory.com/4

 

 

반응형