[알토르] #5 cron을 사용해 주기적인 웹크롤링 코드 실행

Hyungjun·2024년 5월 16일
0

알토르

목록 보기
6/23
post-thumbnail

Mission

  1. cron 이란?
  2. python cron 모듈을 이용한 데이터 저장

배경지식

  1. cron은 리눅스 운영체제에서 제공하는 스케줄링 도구이다. 정기적으로 반복되는 작업을 자동으로 수행하도록 스케줄링하고 실행하는데 사용한다.

  2. crontab은 cron을 관리하는 table이다. table에 cron의 내용을 작성해 놓으면 시간에 맞춰 실행을 시켜준다.

실습

#1 crontab 만들기

  1. crontab 만들기
$ sudo crontab -e 
  1. crontab 내용 써넣기 (i를 눌러 입력모드로 바꾸고 다쓴후 esc, :wq)

    0 17 * * * [파이썬이 설치된 절대경로] [실행할 파이썬의 절대경로] >> [로그 파일의 절대경로] 2>&1
    시간설정 = 분(0~59) 시(0~23) 일(1~31) 월(1~12) 요일(0일요일~7일요일)
  2. crontab 확인

$ sudo crontab -l

이렇게 해서 python이 네이버 스포츠 안에 nba팀 순위와 승률을 크롤링하여 AWS EC2 인스턴스 내에 mysql에 데이터를 매일 17시에 주기적으로 갱신할 수 있게 되었다.

  1. 오류 해결

일반적으로 다른 프로그램이 컴퓨터 내의 파일에 접근할 수 있는 권한을 꺼놨다.
-> cron에 대해 모든 디스크에 대한 접근 허용해주기
-> cmd shift G 후 /usr/sbin/cron 추가
-> 그리고 파이썬도 동일하게 접근 권한을 허가해줘야 한다.

  1. 결과
    /1 17 * * 로 수정해서 오류가 해결됬는지 확인했는데 sequel ace로 확인하니 해결되어 1분마다 새로운 table이 생성되는 것을 확인할 수 있었다.

의문점 : 왜 현재 시간으로 저장이 안되지?
답변 : mysql의 시간이 디폴트 값으로 본초자오선 시간으로 되어있어 시간차가 나기에 설정을 해주면 해결 가능

출처
https://wonos.tistory.com/244
https://great-developer.tistory.com/218

profile
Cloud Security Expert

0개의 댓글