-
타임존 변경, 서버 실행환경, Cron 설정computer_IT 2022. 6. 25. 20:50반응형
'파이썬을 이용한 웹크롤링과 스크레이핑' 중에서
서버 조작시 타임존 변경하려면sudo dpkg-reconfigure tzdata
Asia > 해당 지역 (예: Seoul, Tokyo) 선택
타임존을 변경했을 때 실행 중인 데몬은 변경사항이 반영되지 않을 수 있으므로, cron 재시작(작업스케줄러 사용시) 및 패키지 업데이트sudo service crond restart sudo apt-get update sudo apt-get upgrade -y
서버에 실행 환경 구성하기
로컬 머신의 환경에 pip로 설치한 라이브러리와 같은 것을 서버 측에 생성한 환경에 설치하기
# 로컬 머신에서 조작 # 로컬 머신 내부에 설치된 라이브러리의 버전 목록을 추출 후 파일로 저장 pip freeze > requirements.txt # 서버에서 조작 # requirements.txt 파일을 서버에 업로드 후 pip install -r requirements.txt
Cron 설정
Crontab 내부에 설정을 하나하나 작성하면 복잡해지므로 셸 스크립트를 만들고 필요한 설정과 프로그램 실행을 하는 것을 추천
셸 스크립트(run_crawler.sh) : 가상환경 폴더 밖에 위치#!/bin/bash # 셸 스크립트에 있는 디렉토리로 이동 cd $(dirname $0) # 가상환경 활성화 하기(가상환경 이름은 scraping인 경우) . scraping/bin/activate # 파이썬 스크립트 실행하기(예: crawler.py) python crawler.py
다음 명령어로 실행 가능하도록 만들어 준다.
chmod +x run_crawler.sh
/etc/crontab 끝 부분에 다음과 같은 설정을 추가하면 매일 6시 13분에 run_crawler.sh를 실행하게 된다.
13 6 * * * ubuntu /home/ubuntu/crawler/run_crawler.sh > /tmp/crawler.log 2>&1
여기서 > /tmp/crawler.log 2>&1 은 실행한 스크립트의 표준 출려과 표준 오류 출력을 tmp/crawler.log에 저장하라는 의미이다. cron으로 실행하는 프로그램은 우리가 직접 실행하는 프로그램과 다르게 문제가 발생해도 문제를 직접적으로 볼 수 없기 때문에 로그 파일에 저장하게 만들어서 문제가 발생했을 때 확인할 수 있게 해 준다.
(차후 확인해야 할 사항들)
cron 으로 메일을 보내려면 MTA(Mail Transfer Agent)설치해야 함. Postfix
cron 환경변수 설정에 다음과 같은 내용을 추가하면 오류발생시 지정한 메일 주소로 통지하게 된다.
MAILTO = example@example.com
그리고 위의 > /tmp/crawler.log 2>&1 은 삭제하고 실행한다.
크롤링과 스크레이핑 처리를 각각 독립해서 작업하면 크롤링 시간이 길어도 메시지 큐로 두 처리를 연결해서 동시에 두 처리가 상호 작용하게 하는 것이 좋다. 메시지 큐로 RQ 라이브러리 사용. 사용하기 쉬운 RQ + Redis 조합반응형'computer_IT' 카테고리의 다른 글
자바 문자열 글자수로 자르기 (0) 2022.07.01 넥사크로 한 개 컬럼에 여러 체크박스 바인딩하기 스크립트 (0) 2022.06.30 파이썬을 이용한 웹크롤링 연습 (0) 2022.06.19 유튜브 영상 무료 다운로드하는 법(윈도우 기준) (0) 2022.06.18 구글스프레드시트를 이용한 유용한 주식정보 가져오기 (3) 2020.12.23