크론탭(crontab)을 활용해서 파이썬 파일이 설정한 스케줄대로 자동 실행되도록 만들어보자!
이 글은 정말 간단한 예제를 통해 사용 방법을 익혀보는 것을 목표로 한다.
크론탭(crontab)으로 파이썬 파일 실행 자동화 Let's get started!
1. 가상 환경 설정
가상환경 이름은 .venv로 하는 것이 관례이나, 나는 식별을 위해 .venv_schedule
로 이름지었다.
# 1, 가상환경 생성하기
# python -m venv [가상환경 이름]
python -m venv .venv_schedule
# 2. 가상환경 활성화
# source [가상환경 이름]/bin/activate
source .venv_schedule/bin/activate
2. 실행할 파이썬 파일 생성
가상환경 폴더 아래 schedule.py를 생성하고, log_file_path 위치에 현재 시간을 찍는 코드를 작성했다.
# schedule.py
from datetime import datetime
log_file_path = "/Users/hyebin/Desktop/personal/log/log.txt"
# 파일이 없으면 자동 생성
with open(log_file_path, "a") as f:
f.write(f"{datetime.now()}\n")
3. 크론탭 명령어 작성 및 등록
터미널을 열고 아래 코드 쓰기!
crontab -e
그럼 파일을 수정할 수 있는데,
i
를 눌러 insert mode로 진입하자!
위 사진은 insert 모드에서 크론탭 명령어를 작성한 것이다.
명령어 작성을 위해서는 크론탭 명령어 구조를 알아야 한다.
크론탭 명령어 구조
명령어 구조는 크게 아래와 같다.
- 시간
- 실행할 파이썬 경로
- 실행할 파일 경로(schedule.py)
💡실행할 파이썬 경로 확인하기
다양한 파이썬이 설치되어 있기 때문에, 터미널에 which python3 를 입력해서 파이썬 경로를 확인하자.
💡실행할 파일 경로 확인하기
실행할 파일에서 마우스 우클리 Copy Path를 눌러준다.
크론탭 시간 작성 방법
분 (0-59) 시간 (0-23) 일(1-31) 월(1-12) 요일(0-7) 이렇게 5자리로 표현한다.
2가지 예시를 들어보자. 숫자사이엔 공백이 있다.
(어떻게 시간으로 표현할지 모르겠다면, gpt 도움을 받자🙂)
- 매주 토요일 오전 9시 30분 실행 ➡️ 30 9 * * 6
- 1분 마다 실행하기 ➡️ * * * * *
크론탭 명령어 작성
나는 매분
,schedule.py를 실행
하도록 작성했다.
명령어 입력을 마쳤다면, esc
를 누르고, :wq
를 입력해서 내용을 저장한다.
**# 5자리 시간**(v)**실행할 파이썬 경로**(v)**실행할 파일 경로
* * * * * /Users/hyebin/.pyenv/shims/python3 /Users/hyebin/Desktop/schedule_fold/.venv_schedule/shedule.py**
명령어 등록 확인
아래 명령어로 명령어 저장이 잘 되었는지 확인해보자.
입력한 명령어가 나온다면 저장이 잘 된 것이다!
crontab -l
4. 확인
log.txt 파일을 열어 schedule.py가 스케줄한대로 잘 실행되었는지 확인해보자
1분마다 시간이 찍힌걸 확인할 수 있다 🙂ㅎㅎㅎ
마무리
간단한 예제를 통해서 자기만의 스케줄러를 구현해보쟛!
'Python' 카테고리의 다른 글
함수 안에서 함수 밖의 변수를 변경하는 방법(return, global) (0) | 2022.06.25 |
---|---|
매개변수 초깃값 설정 (SyntaxError: non-default argument follows default argument) 오류 메세지 이유 (0) | 2022.06.25 |
Python 함수의 return에 대해 알아보자! (0) | 2022.06.25 |
Python 매개변수 *args, **kwargs 사용해보기 (0) | 2022.06.22 |
Python 입력값과 결괏값에 따른 함수 총정리 (0) | 2022.06.22 |