본문 바로가기

DB엔지니어가 공부하는 python

[python_주소DB가지고놀기] 파이썬, ubuntu에서 crontab 등록 하여 실행 하기 #3

#[python_주소DB가지고놀기] 파이썬, ubuntu에서 crontab 등록 하여 실행 하기 #3

 

안녕하세요.

 

지난시간에 올린 포스팅에 보충 설명이 필요할 것 같아서요.

 

제가 물론 부족해서... 해맸던 내용인데, 여러분들은 그러실 필요 없잖아요?! ㅎㅎ

 

우선, 지난 포스팅 두개 링크합니다.

 

# 1편 바로가기

2020/01/17 - [DB엔지니어가 공부하는 python] - [python_주소DB가지고놀기]공공데이터포털 에서 주소DB 다운 받아 DB에 insert 하기 #1

 

[python_주소DB가지고놀기]공공데이터포털 에서 주소DB 다운 받아 DB에 insert 하기 #1

안녕하세요. 이번 작업은 제가 이미 여러 번 했던 작업이긴 한데.. 혹시나 필요하신 분들이 계실까 싶어 공유합니다. 우리나라 주소 DB를 내 DB에 구축하는 방법입니다. 1편은 파이썬과 직접적으로 관련 없습니다...

stricky.tistory.com

# 2편 바로가기

2020/01/20 - [DB엔지니어가 공부하는 python] - [python_주소DB가지고놀기] 파이썬 으로 주소DB에 위도 경도 값 api로 받아 update 하기 #2

 

[python_주소DB가지고놀기] 파이썬 으로 주소DB에 위도 경도 값 api로 받아 update 하기 #2

안녕하세요. 지난번에 주소 DB를 공공데이터 포털에서 다운로드하여서 구축하는 작업을 했습니다. ## python_주소DB가지고놀기 1편 보러 가기 2020/01/17 - [DB엔지니어가 공부하는 python] - [python_주소DB가지..

stricky.tistory.com

 

지난번 포스팅을 보면 주소 DB를 구축하고, 전체 주소를 주소 DB에 텍스트로 update 하였습니다.

 

그리고 그 주소를 가지고 http://www.vworld.kr/dev/v4dv_geocoderguide2_s001.do

 

공간정보 오픈플랫폼 오픈API

Geocoder API 2.0 레퍼런스 Geocoder API 2.0 레퍼런스입니다. API 버전 : Geocoder API 2.0 레퍼런스 Geocoder API 1.0 레퍼런스 소개 주소를 좌표로 변환하는 서비스를 제공합니다. 요청URL을 전송하면 지오코딩 서비스를 사용하실 수 있으며 일일 지오코딩 요청건수는 최대 30,000건 입니다. 단, API 요청은 실시간으로 사용하셔야 하며 별도의 저장장치나 데이터베이스에 저장할 수 없습니다. 주소정보를 좌표

www.vworld.kr

여기에서 위경도 값을 API로 받아오는 파이썬 소스를 공유했었죠.

 

이게 시간이 오래 걸리는 작업이라, 전 ubuntu에서 crontab으로 등록하여 알아서 돌게끔 했었다고 했는데, 전 여기서 많이 해맷었습니다. 파이썬 코드를 실행하게끔 하는데 첨 하는 것이다 보니 잘 모르겠더라고요.

 

crontab은 많이 사용해 보았지만 여기서 파이썬 코드를 등록해서 실행해본 적이 없었어요...ㅠㅠ

 

아무튼, 등록방법을 바로 안내해 드리겠습니다.

 

여러분들의 시간은 소중 합니다.

 

우선 crontab을 등록하기 위해서 전편에서 공유했던 파이썬 소스를 ubuntu에 특정 폴더에 저장합니다.

 

저 같은 경우는 juso_gps_r.py라는 이름으로 하나를 저장하고, juso_gps_c.py라는 이름으로도 저장하고, 지금은 이미 작업을 마쳐서 다 지웠지만,  juso_gps_1.py,  juso_gps_2.py ..... 이렇게 10개를 만들었습니다.

 

그 이유는 API key 마다 하루 3만 개의 데이터만 위경도 변환 정보를 리턴 받을 수 있기 때문에 그렇게 했습니다. 이렇게 10개를 등록하고, 각 소스마다 키를 다르게 한 것이지요.

 

그럼 하루 30만 개의 데이터를 받을 수 있게 됩니다.

 

좀 더 생각해보면 하나만 등록하고, 실행되는 시간이나 횟수에 따라 API key를 소스 안에서 분기 처리하는 방법도 있지만, 사실 귀찮아서 그렇게는 안 했습니다.

 

그냥 10개 정도는 막일하는 걸로..ㅎㅎ

 

이렇게 파이썬 소스를 저장을 하고 나서 crontab 에디터를 엽니다.

 

crontab -e

crontab 에디터를 열어 가장 아래로 갑니다. (대문자 G)

 

여기다가 이렇게 붙여 넣어 줍니다.

 

SHELL = /bin/bash
PATH = /sbin:/bin:/usr/sbin:/usr/bin

1 1 * * * python3.7 /home/stricky/python_script/juso_gps_r.py &
41 1 * * * python3.7 /home/stricky/python_script/juso_gps_c.py &

SHELL 부분은 제가 bash shell을 사용하겠다는 거고, PATH를 잡아줍니다.

 

그리고 아래 두줄 있죠?

 

저 같은 경우는 python3.7과 python2 가 함께 설치되어 있어서 python3.7이라는 실행 파일명을 써준 겁니다.

#사실 이 부분 정확하게 잘 모르겠습니다. 제 맥에서는 그냥 python이라고 해도 잘 돌아가더라고요..ㅠㅠ 잘 아시는 분 댓글 좀...ㅠㅠ

 

#crontab 사용법에 대한 것은 잘 모르시는 분들은 아래 링크를 통해서 확인해 보시기 바랍니다.

https://stricky.tistory.com/66?category=566136

 

crontab in linux 크론탭은 무엇인가?

crontab in linux 크론탭은 무엇인가? crontab.. linux에서 crontab을 잘 알고 사용할 수 있다면 또 이것보다 좋은게 있을까? 많은 업무현장에서 잘 쓰고 있으며, DB나 기타 다른 어플리케이션들과도 잘 어울려져..

stricky.tistory.com

이렇게 crontab에 등록을 마치고 나면 이젠 원하는 시간에 알아서 실행이 되면서 자동으로 주소에 따른 위경도 값을 가져오게 될 것입니다.

 

여기에 따라 궁금하신 게 있으시면 댓글을 통해서 문의하시면 안내해 드리도록 하겠습니다.

 

감사합니다!!!

 

data.go.kr

 

 

 

 

by.sTricky