매월 혹은 매일 단위로 배치 작업을 수행해야 하거나, 특정 날짜의 특정 시간에 이벤트성으로 작업을 걸어줘야 하는 경우가 있다.
이럴 경우엔 사람이 직접 수작업으로 수행할 수 없으니 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
댓글 없음:
댓글 쓰기