[Linux/Ubuntu] 예약 반복 실행(crontab)
crontab이란?
리눅스에서 기본적으로 제공하는 예약 실행 시스템이다. 예를 들어 매일 아침 9시에 메일을 보내고 싶다는 등의 특정 시간에 반복적인 업무를 해야 할 때 활용할 수 있다.
기본 명령어
터미널에서 아래와 같이 실행하면 crontab을 등록, 확인, 제거 할 수 있다.
# crontab job 등록
crontab -e
# 현재 등록된 내용 확인
crontab -l
# 등록된 crontab 삭제
crontab -r
# -e 옵션으로 편집창이 뜨면 원하는 명령 작성(아래 주기 참고)
* * * * * 스크립트.sh
별표에 따른 주기 확인
*(분0-59) *(시간0-23) *(일1-31) *(월1-12) *(요일0-7)
# 매분 실행
* * * * * script.sh
# 매주 금요일 오전 5시 45분에 실행
45 5 * * 5 script.sh
# 매일 오후 7시에 실행
0 19 * * * script.sh
# 오전 9시, 오후1시 마다 실행
0 9,13 * * * script.sh
# 매 10분마다 실행
*/10 * * * * script.sh
# 월~금 10시 실행
0 10 * * 1-5 script.sh
MacOS에서 사용하는 법
MacOS에서는 리눅스와 달리 약간의 설정을 해줘야 한다. 이 설정을 하지 않으면 crontab에서 실행할 script 내용이 Permission이 거부된다.
시스템 환경설정
-보안 및 개인 정보 보호
에 들어간다.
개인정보 보호
탭을 클릭하고 왼쪽 리스트 중전체 디스크 접근 권한
을 클릭한다.
- 자물쇠 버튼을 눌러 잠금을 해제하고,
터미널
을 찾아 체크해준다.
- '+' 버튼을 눌러
/usr/sbin
경로에 들어가cron
을 추가하고 체크해준다.
- 여기까지 했으면 위 리눅스의 방법과 같이 터미널에서 crontab으로 설정하면 된다.