윈도우에서 파이썬 스크립트 작업 예약하기 (작업 스케줄러 대신 Cron으로)

업무 자동화를 위해서 파이썬 스크립트를 짜게 되면 이걸 정해진 시간에 정기적으로 실행되도록 해야 할 때가 있다. cron으로 간편하게 설정할 수 있다.

물론 윈도우에서는 기본적으로 ‘작업 스케줄러’를 사용할 수 있다.

윈도우에서 작업 스케줄러를 실행해보면 대충 이런 식이다.

작업을 만들고 ‘트리거’를 설정한 후

그에 따라 동작할 스크립트를 지정해놓으면 된다.

나도 처음에는 작업 스케줄러로 스크립트 실행을 예약해놓았는데, 내 생각처럼 잘 안 돌아가더라. 그래서 이런저런 방법을 알아보다가 Cron 이라는 것을 알게 되었다.

Cron이 무엇인가

미리 설정한 날짜,시간에 따라 스크립트를 실행해주는 잡 스케줄러이고 원래는 리눅스/유닉스 계열의 운영체제에서 사용되는 것이라고 한다. 자세한 내용은 위키피디아를 참고하자.

https://ko.wikipedia.org/wiki/Cron

윈도우 작업 스케줄러는 사용자가 직접 이것저것 누르고 조작해서 설정하는 GUI방식인데 크론은 운영체제와 상관없이 동일한 방식의 텍스트 편집만으로 설정을 끝낼 수 있기도 하고, 윈도우 작업 스케줄러보다 더 가벼워서 이걸 사용해보기로 했다.

윈도우에 Cron 설치하기

윈도우는 크론을 내장하고 있지 않기 때문에 별도로 설치해야 한다. 윈도우용 크론을 찾아보니 wincron, cronw, nncron 등 이것저것 있는데 이 중에서 nncron이 제일 가볍고 사용이 간편하다고 해서 이걸로 결정했다.

러시아 사이트 같은데 어쨌든 아래 사이트에 접속해서 nncronlt117.exe (라이트 버전)을 받아 실행하면 된다.

http://www.nncron.ru/download.shtml

설치는 별 거 없다. 그냥 next만 눌러주면 끝이다.

Crontab 설정하기

크론이 어떤 시점에 무엇을 실행할지 설정하려면 crontab(크론탭)이란 파일을 작성해놓으면 된다. 크론탭 파일은 아래 경로에 위치한다.

C:\Program Files (x86)\cron\cron.tab

cron.tab 이라는 파일은 그냥 텍스트 파일이다. 메모장으로 열어보면 이렇게 생겼다.

앞에 #이 붙어 있는 건 파이썬 스크립트처럼 컴퓨터가 읽고 수행하지 않는 ‘주석’정도로 생각하면 된다.

그런데 crontab에 한글 경로가 들어갈 때 utf-8로 저장되면 안 되기 때문에 윈도우에서 기본으로 제공되는 워드패드를 사용해서 이 crontab 파일을 수정하면 된다. 워드패드는 아래와 같은 경로에서 있고 이걸 관리자 권한으로 실행해야 한다.

C:\Program Files\Windows NT\Accessories\wordpad.exe

관리자 권한으로 실행한 워드패드를 통해 crontab파일을 열고 아래쪽에 이렇게 한 줄 추가했다.

0 9 * * 1-5 python C:\Users\username\Desktop\ex.py

크론탭은 [작업 예약 시간] – [실행할 프로그램(파이썬)] – [실행할 대상(파이썬 스크립트 경로)] 순으로 작성하면 되고, 모두 띄어쓰기만으로 구분한다.

작업 예약 시간을 잘 보면 0 9 * * 1-5라고 작성했는데, 이는 0분 – 9시 – 모든 날짜 – 모든 달 – 월(1)요일부터 금(5)요일까지 라는 뜻이다. 이 문법은 그냥 위키피디아만 읽어도 바로 이해할 수 있으니 참고하자.

만약 제대로 실행이 안 된다면 python 경로도 절대 경로를 적어보자.

C:\Users\hlee\AppData\Local\Programs\Python\Python36\python.exe

나도 회사에서 크론에게 내가 할 일을 많이 예약 해놓은 상태다. 반복 작업은 컴퓨터를 시키고 시간을 아끼자. 그 시간에 놀자!

파이썬 잘하고 싶다.

추천 글


댓글 남기기