프로그램 주기적으로 실행하기(crontab) 본문

프로젝트/라즈베리파이

프로그램 주기적으로 실행하기(crontab)

뚜스머리 2017. 5. 23. 11:04

라즈베리파이를 사용하면서 어떤 프로그램이나 스크립트를 주기적으로 실행시키고 싶은 경우가 있다.

내 경우, 승부예측 프로젝트를 진행하면서, 매일매일의 경기결과가 필요한데, 

만약 이걸 직접 수집하게 된다면 상당히 귀찮은 작업이다.

그래서 내가 집으로 간 후, 새벽즈음 자동으로 크롤링을 하고, DB에 저장하게 소스를 만든다면 굉장히 편하고 유용할 것이다.

데비안을 기반으로 하는 라즈비안에서는 그러한 기능을 간단하게 구현할 수 있다.


어떻게 구현하는가? 간단하게 crontab을 이용한다.

(라즈베리파이에서 자세한 설명을 보려면 $man crontab을 입력해주면 된다.)


(man crontab 내부의 명령어 설명)




위의 명령어를 수행함으로써 crontab을 수정할 수 있다.

만약 슈퍼유저의 권한으로 수행해아 한다면 sudo crontab -e 를 입력하자.






(내부화면의 모습)


크론탭을 등록할때 몇가지 규칙이 있다.

위의 설명에서도 나오지만


입력을 할 때,

M H DOM MON DOW COMMAND 형식으로 입력한다.

순서대로 분, 시, 일, 월, 요일 명령어이다.


위의 화면의 예시를 보면 바로 알 수 있다.

For example, you can run a backup of all your user accounts at 5 a.m every week with:

매주 오전 5시에 사용자 계정을 백업하는 과정.

0 5 * * 1 tar -zcf /var/~~~~~


내가 집에간 후,  매일 새벽 한시에 파이썬 스크립트를 실행한다고 하면 

다음과 같은 명령어를 입력해주면 된다.




내 경우 특정 디렉토리를 지정하고, 그 뒤에 명령어를 입력하였는데

이 경우 세미콜론 (;) 을 통해 두 명령어를 구분시켜 주면 된다.


참고로 다른 요소들과 다르게,  요일 같은 경우

1-5 처럼 사용하여, 실행할 범위를 결정할 수 있다.