crontab 사용하기

임재규·2023년 5월 22일
0

Data_Engineering_Track_22

목록 보기
11/24

크론탭(crontab)이란?

크론탭(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)
  • batch.sh 파일 생성
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
profile
공부 기록

0개의 댓글