RedMeta

파이썬을 이용해 프로그램을 만드셨는데 주기적으로 그 프로그램이 실행되어야 할 때가 있습니다. 저도 텔레그램과 파이썬을 이용해서 주기적으로 알람을 받아보는 프로그램을 만들어봤는데 주기적으로 프로그램을 돌리기 어려울 때가 있었습니다. 오늘은 파이썬 파일을 리눅스에 올리고 crontab을 이용해서 스케줄링을 설정하는 방법에 대해서 알아보겠습니다. 

파이썬-crontab

준비사항

  • 리눅스 설치
  • 리눅스에 파이썬 설치
  • 파이썬 파일 생성

먼저 준비사항으로 리눅스가 설치가 되어 있어야 하고 그 안에 파이썬을 실행할 수 있게 자신이 준비한 파이썬 프로그램에 맞춰서 파이썬 버전을 준비해서 설치해 놓아 주시면 됩니다. 파이썬이 설치되어 있지 않으신 분들은 아래의 글을 참고해 주세요

2021.06.06 - [Python] - 우툰투에 파이썬 설치하는 방법 / How to install python for Ubuntu

 

우툰투에 파이썬 설치하는 방법 / How to install python for Ubuntu

Ubuntu 20.04 LTS 기준으로는 파이썬이 기본적으로 설치가 되어서 나옵니다 파이썬이 정말 누구도 가리지 않고 많이 사용한다는 것을 볼 수 있는데요 # python3 --version 이라고 명령어를 입력해보시면

hnm1.tistory.com

그리고 파이썬 파일을 준비해 주세요, 파이썬 파일 안에서 스케줄링 관련 패키지를 설치하고 사용해서 프로그램 중지 없이 계속 실행시키고 사용하는 방법도 있지만

리눅스의 crontab 을 이용하면 코드 수도 줄이고 훨씬 간편하게 사용할 수 있는 방법이니 자신의 상황에 맞는 방법으로 이용하시면 되겠습니다.

 

파이썬-스케줄링

먼저 앞에 스케줄링을 이용한 주기 설정을 먼저 해주셔야 합니다. 주기 설정하실 때 잘못하시게 되면 의도치 않게 1분에 한번씩 실행되어 버리는 경우 프로그램에 따라 메모리 부족으로 OS자체가 뻗어버릴 수 있으므로 잘 설정하셔야 합니다. crontab 주기 설정은 아래 링크를 참고해 주세요

https://coconuts.tistory.com/202

 

리눅스 crontab 예약 명령어 / crontab 사용 방법

Crontab은 cron table를 줄여서 부르는 명령어 입니다. 소프트웨어 유틸리티 cron은 유닉스 계열 컴퓨터 운영 체제의 시간 기반 잡 스케줄러입니다. 소프트웨어 환경을 설정하고 관리하는 사람들

coconuts.tistory.com

주기 설정을 마치셨으면 뒤에는 파이썬 파일을 실행 하듯 명령어를 입력해 주시면 됩니다. 먼저 자신이 설치한 파이썬 버전을 써주시고 실행할 파이썬 파일을 입력해 주세요

그리고 >> 로그.log 이용하시면 실행될 때마다 로그를 남기며 실행되게 할 수 있어서 이력관리에 도움을 줍니다. 전체 명령어는 아래와 같습니다.

*/1 * * * * * /usr/local/bin/python3.9 /home/opc/github/Telegram-bot/main.py >> python1.log

 

파이썬-쉘파일

위 사진과 같이 쉘 파일을 만들어서 스케줄링을 사용하는 방법도 있습니다.

#!/bin/bash
echo "파이썬 파일 실행"

/usr/local/bin/python3.9 /home/opc/github/Telegram-bot/main.py

 위와 비슷하게 쉘 파일을 만들어 주시고 위에 crontab 에 쉘 파일 실행을 등록해 주시면 되겠습니다.

공유하기

facebook twitter kakaoTalk kakaostory naver band