2023년 8월 20일 일요일

리눅스 크론탭(Linux Crontab) 사용법

리눅스 크론탭(Linux Crontab) 사용법


크론탭 사용법



크론탭이란 ?

특정시간에 프로그램을 실행시키기 위해 사용 (윈도우에서 스케쥴러와 유사)

# Example of job definition:
# .---------------- minute (0 - 59)
# | .-------------- hour (0 - 23)
# | | .------------ day of month (1 - 31)
# | | | .---------- month (1 - 12) OR jan,feb,mar...
# | | | | .-------- day of week (0 - 6) Sunday=0 or 7
# | | | | |         OR sun,mon,tue,wed,thu,fri,sat
# * * * * * user-name command to be executed


크론탭

crontab -l : 예약된 작업리스트
crontab -e : 예약된 작업 수정
crontab -r : 예약된 작업 삭제


특수문자

* : 모든 값을 뜻합니다.
? : 특정한 값이 없음을 의미
- : 범위 
예) 0-6 -> 밤12시부터 오전 6시까지
, : 특별한 값일 때만 동작 
예) 0, 15, 30 -> 정각, 15분, 30분
/ : 시작시간 / 단위 
예) 0/5 -> 0분부터 매5분
L : 일에서 사용하면 마지막 일, 요일에서는 마지막 요일(토요일)
W : 가장 가까운 평일
예) 15W -> 15일에서 가장 가까운 평일(월~금)을 찾음
#
: 몇째주의 무슨 요일을 표현
예) 4#3 -> 3번째주 목요일


주기 설정

- 공백(space)으로 5개 값을 구분하여 설정
- 요일에서 0과7은 일요일
- 1이 월요일 ~ 6이 토요일

* * * * * 명령어

① 첫 번째 * : 분 (0~59)
* 을 설정할 경우, 매분(1분 마다) 실행을 의미

② 두 번째 * : 시 (0~23)
*을 설정할 경우, 매시간(1시간 마다) 실행을 의미

③ 세 번째 * : 일 (1~31)
*을 설정할 경우, 매일 실행을 의미

④ 네 번째 * : 월 (1~12)
*을 설정할 경우, 매월 실행을 의미

⑤ 다섯 번째 * : 요일(0~6), 0:일요일, 1:월요일, 2:화요일, 3:수요일, 4:목요일, 5:금요일, 6:토요일
*을 설정할 경우, 매일 실행을 의미


예제

* * * * *                         매일 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분, 20시 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분에 실행