cron은 리눅스 운영체제에서 제공하는 스케줄링 도구이다. 정기적으로 반복되는 작업을 자동으로 수행하도록 스케줄링하고 실행하는데 사용한다.
crontab은 cron을 관리하는 table이다. table에 cron의 내용을 작성해 놓으면 시간에 맞춰 실행을 시켜준다.
$ sudo crontab -e
crontab 내용 써넣기 (i를 눌러 입력모드로 바꾸고 다쓴후 esc, :wq)
0 17 * * * [파이썬이 설치된 절대경로] [실행할 파이썬의 절대경로] >> [로그 파일의 절대경로] 2>&1
시간설정 = 분(0~59) 시(0~23) 일(1~31) 월(1~12) 요일(0일요일~7일요일)
crontab 확인
$ sudo crontab -l
이렇게 해서 python이 네이버 스포츠 안에 nba팀 순위와 승률을 크롤링하여 AWS EC2 인스턴스 내에 mysql에 데이터를 매일 17시에 주기적으로 갱신할 수 있게 되었다.
일반적으로 다른 프로그램이 컴퓨터 내의 파일에 접근할 수 있는 권한을 꺼놨다.
-> cron에 대해 모든 디스크에 대한 접근 허용해주기
-> cmd shift G 후 /usr/sbin/cron 추가
-> 그리고 파이썬도 동일하게 접근 권한을 허가해줘야 한다.
의문점 : 왜 현재 시간으로 저장이 안되지?
답변 : mysql의 시간이 디폴트 값으로 본초자오선 시간으로 되어있어 시간차가 나기에 설정을 해주면 해결 가능
출처
https://wonos.tistory.com/244
https://great-developer.tistory.com/218