크론을 사용해서 자동으로 스크립트를 실행하자.
들어가기에 앞서
- 예제 코드는 pycrawler-exam을 통해 다운로드 받을 수 있다.
- [Python] 크롤링으로 업무 자동화 - (5)슬랙으로 결과 전송를 안읽었다면 먼저 읽기를 권한다.
- 예제는 크롬 버전 78.0.3904.108, 웹 드라이버 버전 78.0.3904.70으로 만들어졌다.
Cron
크론은 유닉스 계열 컴퓨터 운영 체제의 시간 기반 잡 스케줄러이다. 지정된 시간에 주기적으로 실행할 수 있도록 크론을 사용한다.
이전에 작성한 크롤러를 사람이 매일 실행하는 것도 불필요한 작업이다. 이 작업을 컴퓨터가 자동으로 실행할 수 있도록 할당하자.
(윈도우는 크론을 지원하지 않는다. 작업 스케줄러를 사용하거나, nncron을 설치해서 사용하면 된다.)
예약하기
크론은 crontab
(cron table) 파일에 의해 구동된다. 터미널 명령어로 간단하게 조작할 수 있다.
1 |
|
터미널에 crontab -e
명령어를 입력하면 에디터가 열린다. 대부분 vi
또는 vim
이 열릴 것이다. 사용법이 일반 에디터와 다르니 아래 순서를 따라 한다.
i
키를 입력해서 에디터 모드로 전환한다.0 10,17 * * 1-5 [파이썬 절대경로] [실행할 파이썬 파일 절대 경로]
를 입력한다.- 파이썬 절대경로는
which python
명령어, 프로젝트 절대 경로는 프로젝트 경로에서pwd
명령어로 확인할 수 있다. esc
키를 입력하면 명령 모드로 전환된다.:wq
를 입력하고enter
키를 입력하여 저장 후 종료한다.
이렇게 입력하고 crontab -l
로 확인해본다.
1 |
|
크론 설정 해석
크론 설정에서 0 10,17 * * 1-5
의 의미는 매월 매일 월요일~금요일 10시와 17시에 실행한다
라는 의미다.
위키백과 cron을 검색하면 아래의 자료를 볼 수 있다.
1 |
|
분, 시, 일, 월, 날짜 순서다.
특징은 아래와 같다.
- 공백으로 구분한다.
- A부터 B를 모두 포함할 때는
-
를 사이에 둔다. - 특정 시간을 지정할 때는
,
를 사이에 둔다. - 모든 것을 포함할 때는
*
를 사용한다.
시간을 입력했으면 뒤에 커맨드 명령어를 입력하면 된다.
마무리
이렇게 크론까지 설정하면 모든 작업이 마무리된다.
원하는 시간대에 알아서 컴퓨터가 대신 일해주는 것은 매우 기분 좋은 일이다. 그 일이 오래걸리지 않더라도 말이다.
자동화 프로그램을 만들어본 경험이 없다면 단순한 업무라도 만들어보는 것을 권장한다. 더 중요한 일에 집중할 수 있게 될 것이다.