크론탭(crontab)은 리눅스 운영체제에서 배치 작업을 스케쥴링 하기 위한 프로그램
크론탭을 이용하면 특정 시각에 작업이 실행되게끔 할 수도 있고, 정기적인 작업 스케쥴링을 할 수도 있다.
sudo apt install cron
sudo service cron start
sudo service cron status
# cron is running 확인
네이버 주식 정보 가져오기(크롤링)
# stock.py로 저장
from datetime import date, datetime
import requests
import pandas as pd
krx_url = "http://data.krx.co.kr/comm/bldAttendant/getJsonData.cmd"
krx_payload = {"bld": "dbms/MDC/STAT/standard/MDCSTAT01901",
"locale": "ko_KR",
"mktId": "ALL",
"share": "1",
"csvxls_isNo": "false",}
today = str(date.today()).replace("-","")
r= requests.post(krx_url, data=krx_payload)
total = []
for x in r.json()['OutBlock_1'][:10]:
symbol = x['ISU_SRT_CD']
url = f"https://api.finance.naver.com/siseJson.naver?symbol={symbol}&requestType=1&startTime={today}&endTime={today}&timeframe=day"
df =pd.DataFrame(data=eval(requests.post(url).text.strip())[1:], columns=eval(requests.post(url).text.strip())[0])
df['symbol'] = symbol
total.append(df)
pd.concat(total, ignore_index=True).to_csv(f"./{today}.csv", index=False)
vim batch.sh
#!/bin/bash
/usr/bin/python3 ~/stock.py
sh ~/batch.sh
# 실행 권한 부여하기
chmod +x ~/batch.sh
~/batch.sh
date 명령어로 현재 시간 확인
crontab -e #텍스트 편집기를 이용해 스케줄 설정
# 월요일 16시 55분에 지정한 위치에 있는 파일 실행(stock.py)
55 16 * * 1 /home/user/batch.sh
# * 의미
* * * * *
첫번째 : 분
두번째: 시간
세번째 : 일
네번째 : 월
다섯 : 요일
# crontab 리스트 확인
crontab -l