새소식

데이터 엔지니어링/Tableau 스터디 교육 자료

[crontab] 크론잡으로 크롤러 실행 주기 설정

  • -

TODO List

* 크롤러 파일 위치 확인

* 크론탭 설정


# 기본 홈 디렉터리 gunu@crawler-worker-1:~$ # 현재 디렉터리 하위 파일 및 디렉터리 확인 gunu@crawler-worker-1:~$ ls crawling # crawling 디렉토리로 이동 gunu@crawler-worker-1:~$ cd crawling/ gunu@crawler-worker-1:~/crawling$ # 다시 현재 디렉토리 하위 파일 확인 gunu@crawler-worker-1:~/crawling$ ls main.py # 현재 파일까지의 경로 확인 gunu@crawler-worker-1:~/crawling$ pwd /home/gunu/crawling # 즉 내 크롤링 시작 파일의 전체 경로는 # /home/gunu/crawling/main.py

 

gunu@crawler-worker-1:~$ crontab -e # crontab을 수정(edit)한다는 의미 # -bash: crontab: command not found # 이런 오류가 나오면 # sudo apt-get update # sudo apt-get install cron # 한 뒤에 다시 시도

 

 

크롭탭 설정 화면
크롭탭 설정 화면

이 화면에 들어오면 성공한 것

 

이제 매일 자정에 홈 디렉토리에 있는 main.py를 실행하도록 크론 명령어를 적으면 된다.

* 약간의 vim 상식

 - 초기 상태 (아무것도 누르지 않은 상태 or esc를 누른 상태)에서

 - i를 누르면 insert 상태로 파일에 타이핑이 가능해짐

 - 다시 초기 상태로 돌아가려면 esc를 눌러야함

 - 저장 후 나가기는 초기 상태에서 :wq를 누르고 엔터

 - 저장하지 않고 나가기는 :q!를 누르고 엔터

 - 초기 상태에서 dd를 누르면 행 삭제

 - :%d는 모든 내용 지우기

 

크롭탭 설정 화면

0 0 * * * : 매일 자정 실행

크론탭 시간 표기법

분 / 시 / 일 / 월 / 요일

0 0 * * * ->  0시 0분 매일

0 15 * * * -> 15시 0분 매일

0 14 * * 1-5 -> 14시 0분 월요일 ~ 금요일

 

추가로 저기서 TZ=Asia/Seoul로 안해놓으면 UTC 기준으로 실행될 수도 있으니 꼭 확인해야함!

이게 싫으면 전체 시스템 타임존을 수정하고 크론탭 시스템을 재부팅하는 방법도 있으나, 저렇게 환경변수로 만들어두는게 쉽고 빠름~


그럼 이제 자정에 실행되는것만 확인하면 지금까지 길고길었던 데이터 수집 -> 적재 자동화가 완성된다~!

그동안 고생하셨습니다!!!!!!

포스팅 주소를 복사했습니다

이 글이 도움이 되었다면 공감 부탁드립니다.