주경야매 미국주식

반복 작업 자동화는 crontab (크론탭) 본문

파이썬

반복 작업 자동화는 crontab (크론탭)

주경야매 2021. 11. 23. 03:05

리눅스에서 반복적인 작업을 자동화 하기 위해 가장 효율적인 방법은 크론탭이다.

 

1) 크론탭 설정 화면으로 진입

crontab -e

 

2) 작업 등록

다음의 형식으로 작업을 등록한다.

분 시 일 월 요일 [실행작업]

다음은 매시 5분에 sample.sh 라는 작업을 실행시키는 예다.

5 * * * * sample.sh

실행작업 앞에 있는 5개의 시간 파라미터로 반복 실행 주기를 예약한다. *는 해당 주기를 무한 반복한다.

  • 0 5 * * * : 매일 5시 0분에 실행
  • 5 * * * * : 매시 5분에 실행
  • * * * * * : 매분 실행
  • 0 0 1 * * : 매달 1일 자정에 실행

매시 5분이 아니라 5분마다 실행하게 하려면 */5 처럼 쓴다.

  • */5 * * * * : 5분마다 실행

콤마를 사용해 실행시간을 복수로 등록할 수 있다.

  • 0 0 1,15 * * : 매달 1일, 15일 자정에 실행

시간 세팅 시 다음 사이트에서 간단히 검증해볼 수 있다. 

https://crontab.guru/

 

3) 파이썬 파일 실행 등록

파이썬 파일을 실행하려면 python sample.py 와 같이 쓴다. 따라서 파이썬 파일을 크론탭으로 자동실행하려면 다음과 같이 쓴다.

* * * * *  python3 /home/ubuntu/Sample/sample.py

가상환경을 이용해 파이썬 파일을 실행하려면 python3 대신 가상환경 내에 있는 파이썬 실행파일로 지정해준다.

* * * * *  /home/ubuntu/Venv/bin/python /home/ubuntu/Sample/sample.py

실행작업의 앞부분에 python 실행파일이 있는 위치를 지정해주고, 뒤쪽에 코드가 담긴 파일의 위치를 지정해주는 것이다.

 

4) crontab 시작 / 업데이트 / 재시작

등록한 크론탭을 시작하려면,

sudo service cron start

크론탭을 업데이트 했다면, 크론탭을 다시 로드하고 재시작 한다. 

sudo service cron reload
sudo service cron restart
Comments