Search

2019년 1월 31일 목요일

[Linux] [CentOS] 반복 및 예약 작업 설정하기 (crontab)

#1. 들어가기

매월 혹은 매일 단위로 배치 작업을 수행해야 하거나, 특정 날짜의 특정 시간에 이벤트성으로 작업을 걸어줘야 하는 경우가 있다.
이럴 경우엔 사람이 직접 수작업으로 수행할 수 없으니 crontab을 활용해 자동화 시키는 방법을 알아보자.


#2. crontab 사용

crontab을 사용하기 위해서는 crond가 동작되고 있어야 한다.
아래의 명령어를 통해 cornd가 돌아가고 있는지 확인/시작/중지 시킬 수 있다.
bash ~]$ ps -ef | grep crond                 # crond 확인
bash ~]$ /etc/rc.d/init.d/crond start        # crond 시작
bash ~]$ /etc/rc.d/init.d/crond stop         # crond 중지

crond가 정상적으로 확인된다면, crontab을 통해 현재 예정된 작업들을 확인/수정 할 수 있다.
bash ~]$ crontab -l                          # 예정된 작업리스트 확인
bash ~]$ crontab -e                          # 작업리스트 수정(추가/수정/삭제)


#3. crontab 작업리스트 추가 옵션

작업리스트는 총 6개의 항목을 작성하여 등록할 수 있는데, 아래와 같이 순서에 맞게 6개의 항목을 작성해주면 된다. (구분은 스페이스바 공백으로 하면 되고, 전체의 의미는 *이다.)

기본구문:     (1)   (2)   (3)   (4)   (5)요일   (6)실행명령구문

ex> 15  2  *  *  *  ~/run_batch.sh                                설명: 매월 매일 새벽 2시 15분에 home의 run_batch.sh 파일을 실행시킨다.
ex> 15  2  *  *  0  ~/run_batch.sh > ~/batch_log.txt    설명: 매주 일요일 새벽 2시 15분에 명령을 수행하고, batch_log.txt에 로그를 기록한다.


아래와 같이 조금 더 세부적인 컨트롤도 가능하다.

- 콤마(,): 여러 특정 범위를 지정할 수 있다.
- 하이픈(-): 여러 연속된 범위를 지정할 수 있다.
- 슬래쉬(/): 범위에 대한 간격을 지정할 수 있다.

ex> 0,15,30,45  2  *  *  *  ~/run_batch.sh                       설명: 매월 매일 새벽 2시 00, 15, 30, 45분에 명령 수행.
ex> */15  2  *  *  *  ~/run_batch.sh                                설명: 매월 매일 새벽 2시 00, 15, 30, 45분에 명령 수행.
ex> 0  1-5  *  *  *  ~/run_batch.sh                                  설명: 매월 매일 새벽 1~5시 정각에 명령 수행.



기타 더 세부적인 옵션은 아래의 참조 사이트들을 참고해보자.
참조1: https://www.adminschoice.com/crontab-quick-reference
참조2: http://egloos.zum.com/program/v/802690

댓글 없음:

댓글 쓰기