1. 크론탭 기본 (crontab basic)

 

 

명령어를 입력후 콜론(:) 입력 후에 wq 를 입력해 크론탭을 갱신

$ crontab -e

 

 

크론탭 확인

$ crontab -l

 

 크론탭 삭제

$ crontab -r

 

 

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

 

2. 주기 결정

*      *      *      *      *
분(0-59)  시간(0-23)  일(1-31)  월(1-12)   요일(0-7)

순서대로 분-시간-일-월-요일 순 

요일에서 0과 7은 일요일 1부터 월요일이고 6이 토요일

 

3. 주기별 예제

* * * * * 매일 매분마다 실행
5 * * * * 매일 매시간 05분에 실행
*/5 * * * * 매일 5분마다 실행
*/10 * * * * 매일 10분마다 실행
0 18 * * * 매일 18시 00분에 실행
15 18 * * * 매일 18시 15분에 실행
* 1 * * * 매일 01시 00분 ~ 01시 59분 사이에 매분마다 실행
0 */1 * * * 매일 1시간 간격으로 실행
0 */12 * * * 매일 12시간마다 실행
0 6,12 * * * 매일 06시, 12시에 실행
5 3-5 * * * 매일 03시 ~ 05시 사이 매시간 10분에 실행
(03시 05분, 04시 05분, 05시 05분)
15 6 15 * * 매달 15일 06시 15분에 실행
30 3 1,15 * * 매달 1일과 15일 03시 30분에 실행
0 18 * * 1 매주 월요일 18시 00분에 실행
0 6,12 * * 0,3 수, 일요일마다 06시, 12시에 실행
0 21 * * 1-6 월 ~ 토 21시 00분에 실행
0 11 11 11 11 ? 11월 11일 11:11마다

 

4.2. 주석을 달아봅시다.

# 주석 #
#--------------------#
# 이것은 주석입니다. #
#--------------------#

# 을 입력해서 그 뒤로 나오는 모든 문자를 주석 처리

 

5. 크론 로깅 (cron logging)

크론탭을 사용해서 정기적으로 작업을 처리하는 것은 좋은데, 해당 처리 내역에 대해 로그를 남기고 싶을 때

* * * * * /home/script/test.sh > /home/script/test.sh.log 2>&1

위처럼 작성하면 매분마다 test.sh.log 파일이 갱신 되어 작업 내용이 어떻게 처리 되었는지 알 수 있다.

만약 2>&1 을 제거하면 쉘스크립트에서 표준 출력 내용만 나옴

로그가 과도하게 쌓이면 아래처럼 사용

* * * * * /home/script/test.sh >> /home/script/test.sh.log 2>&1

 

반대로 로그는 필요 없는 크론일때는 이렇게 사용

* * * * * /home/script/test.sh > /dev/null 2>&1

 

6. 크론탭 백업 (crontab backup)

crontab -l > /home/bak/crontab_bak.txt

크론탭 내용을 txt 파일로 만들어 저장

아래는 매일 오후 11시 50분에 백업해두는 명령어

50 23 * * * crontab -l > /home/bak/crontab_bak.txt

 

+ Recent posts