상세 컨텐츠

본문 제목

Cron 이란? 그리고 Cron을 활용한 python 프로그램 연동하기

IT에 대해

by choiDev 2024. 4. 1. 18:58

본문

Cron 이란?

유닉스와 유닉스 계열 운영체제에서 주기적으로 작업을 실행하기 위한 시간 기반 작업 스케줄러입니다

Cron은 사용자가 정의한 다양한 작업(데이터베이스 백업, 로그파일 정리, 데이터 배치작업)을 지정된 시간에 실행하도록 스케줄링하는데 사용합니다.

cron은 crontab 파일에 의해 구동되며 crontab은 사용자 계정 개개인 별로 가질 수 있으며, 사용자 개개인 말고도 세스템 관리자들만 편집 가능한 시스템 전반에 영향을 미치는 crontab파일이 존재하는 경우도 있다.

 

crontab 표기의 예시는 아래와 같습니다.

예시1) 매일 00:01분에 hello를 출력합니다.

1 0 * * *  echo hello

예시2) 아래 예시는 매일 20시에 dump.sh 를 실행합니다.

0 20 * * *  /home/dump.sh

위의 예시를 조금 까보면 아래 같은 구조입니다. 

{분} {시} {일} {월} {요일} {명령어}
0 20 * * *  /home/dump.sh

 

 

본 글에서는 Cron을 활용하여 python프로그램을 실행하는것을 해보려고 합니다.

작업 목차

1. cron으로 실행할 python파일 만들기
2. crontab -e로 cron 등록

 

1. cron으로 실행할 python파일 만들기

import time
import smtplib
from email.mime.text import MIMEText

SMTP_USER = "구글 이메일 넣어주세요"
SMTP_PASSWORD = "구글 패스워드 넣어주세요"

smtp = smtplib.SMTP('smtp.gmail.com', 587)


smtp.ehlo()
smtp.starttls()
smtp.login(SMTP_USER, SMTP_PASSWORD)

msg = MIMEText("""항상 감사합니다.
    이메일 드림
    """)
msg['Subject'] = '감사의 메일을 드리으리'

smtp.sendmail(SMTP_USER, 'meow@naver.com', msg.as_string())

smtp.quit()


2. crontab -e로 cron 등록

 

정말 쉽고 간단한 cron 프로그램 이였습니다

스프링 배치도있고 AWS 람다를 만들어 스케쥴링을 해도 되지만 정말 급할때는 API서버에 API 하나 만들고 
cron으로 돌리는것도 엄청빠르게 대응하는데는 좋은 방향성이라고 생각합니다.

이만 글을 마칩니다 감사합니다.

관련글 더보기