파이썬을 서버에서 crontab을 통해서 스케쥴링하여 실행하는 방법을 알아보겠습니다.
Crontab 사용법
crontab은 리눅스에서 원하는 작업을 원하는 시간에 스케쥴링 해주는 툴입니다.
일반적으로 shell script 인 .sh확장자 파일을 주로 등록하여 사용합니다.
아래처럼 mtime, ctime을 활용해서 sh파일을 만들곤 합니다.
생성(create) 3일 이상된 파일 삭제
find ./ -ctime +2 -exec rm {} \ ;
find /home -name '*.log' -ctime +2 -exec rm {} \;
삭제 명령 수정한지(modify)- 1일 지난 파일 삭제 예
find [디렉토리] -mtime +0 -exec rm -f {} \;
다시 돌아와 crontab의 주요 명령어는 아래와 같습니다.
crontab -e : 크론탭 추가(edit) crontab -l : 크론탭 리스트 확인(list) crontab -r : 크론탭 삭제(remove) |
그리고 crontab에 등록할때에는 아래와 같은 규칙에 따라서 작성하시면 되는데요.
분 시간 날짜 달 요일 명령어 순으로 작성해주시면 됩니다. (예제) 15 05 * * * do_daily.sh ; 매일 5시 15분에 do_daily 스크립트 실행 00 02 * * 7 do_weekly.sh ; 매주 일요일 2시00 에 do_monthly 스크립트 실행 00 03 1 * * do_monthly.sh : 매월 1일 3시 00분에 do_monthly 스크립트 실행 |
크론탭의 ubuntu 공식 가이드는 링크
Crontab에서 파이썬 등록하는 방법
먼저 간단한 테스트 파일을 만들어보겠습니다.
nano로 test.py라는 파일을 생성한 다음 현재 시간을 출력하는 파이썬을 만들겠습니다.
nano test.py
import datetime
nowT = datetime.datetime.now()
print(nowT)
이후 해당 파일을 crontab에 등록해야 스케쥴링이 정상적으로 동작합니다.
crontab -e를 통해서 크론탭을 실행하고
1분마다 test.py를 실행해서 test.log에 넣는 방법을 하겠습니다.
*/1 * * * * /usr/bin/python3 /home/ubuntu/python/test.py >> /home/ubuntu/python/test.log
파이썬을 crontab에 등록할때에는 이렇게 파이썬 주소, 그리고 파이썬 파일 주소로 작성하셔셔 실행하시면 됩니다.
> 하나는 덮어쓰기가 되고,
>>표시는 append로 뒤에 붙여넣게 됩니다.
확인은 아래 명령어를 통해서 확인하실수 있습니다.
grep CRON /var/log/syslog
확인하시면
실제 파일을 열어서 cat 등으로 정삭적으로 작동되는지도 확인해 볼 수 있습니다.
NO MTA installed, discarding output 에러
ubuntu에서는 크론탭 실행 결과를 mail로 알려주는데요. 해당 메일 서버가 설치되지 않아서
crontab자체가 멈췄습니다.
구글링을 해보니 postfix를 설치해야 한다고 합니다.
sudo apt-get install postfix
위 명령어를 치고 좀 기다리면 설치가 완료됩니다.
중간에 추가용량이 사용된다는 메시지에 y를 눌러서 계속 진행합니다.
아래 postfix를 설치해주면 정상적으로 실행됨을 알 수 있습니다.
그럼 잘 사용하시기 바랍니다
'Tip & Tech > Python' 카테고리의 다른 글
파이썬 텔레그램 챗봇 만드는 방법 (20) | 2022.01.07 |
---|---|
PIP 명령어 정리 (14) | 2022.01.03 |
파이썬 유튜브 API 연동하기 (8) | 2021.12.30 |
파이썬 유튜브 제목, 조회수 크롤링하기 (6) | 2021.12.28 |
파이썬 기초 문법 5일차 - 판다스 2편 (2) | 2021.09.07 |