Crontab을 통해 Python 스크립트 실행

Fariba Laiq 2024년2월15일
  1. Linux/Unix/Solaris의 Crontab
  2. Crontab을 통해 Python 스크립트 실행
Crontab을 통해 Python 스크립트 실행

종종 우리는 효율성과 건전성을 위해 프로세스를 자동화해야 하는 상황에 처하게 됩니다. 직원들에게 정기적으로 이메일을 보내는 것부터 3개월마다 일부 애플리케이션에 대한 라이센스를 갱신하는 것까지 무엇이든 될 수 있습니다.

Crontab은 Cron 테이블에서 파생됩니다. Cron은 자동화에 도움이 되는 Unix, Solaris 및 Linux 운영 체제에서 제공하는 자동화 유틸리티입니다.

이 기사에서는 Crontab을 탐색하고 이를 사용하여 Python 스크립트를 실행하는 방법을 살펴봅니다.

Linux/Unix/Solaris의 Crontab

Cron은 /etc/init.d 스크립트에서 시스템이 부팅될 때 실행되는 데몬입니다. 필요한 경우 init 스크립트를 사용하거나 crond를 통해 데몬을 시작/재시작 또는 중지할 수도 있습니다.

Crontab 또는 Cron 테이블은 목록 형식의 무수한 명령을 포함하는 파일입니다. 이러한 명령 또는 cron 항목은 특정 시간에 실행되도록 설정됩니다.

일반적으로 cronjobsCrontabs로 알려진 이 파일의 명령은 일반적으로 시스템을 관리, 유지 또는 관리하는 데 사용됩니다. 예를 들어 백업과 같이 정기적으로 필요한 다른 작업에도 사용할 수 있습니다.

각 사용자는 자신만의 Crontab을 가질 수 있습니다.

각 Crontab 파일에는 분, 시간, 일(날짜), 월, 일을 지정하는 5개의 필드가 있으며 마지막으로 이 모든 것 뒤에는 이전에 지정된 시간에 실행될 것으로 예상되는 명령이 옵니다.

Crontab을 효율적으로 유지하기 위한 몇 가지 팁은 다음과 같습니다.

  1. 공백을 삽입하여 각 필드를 구분합니다.
  2. 쉼표를 삽입하여 여러 값을 구분합니다.
  3. 하이픈(-)을 삽입하여 값 범위를 지정합니다.
  4. 필드에 가능한 모든 값을 포함하려면 별표(*)를 삽입하십시오.
  5. 줄 시작 부분에 해시(#)를 사용하여 설명을 추가하거나 파일에 빈 줄을 삽입합니다.

Linux/Unix/Solaris의 Cron 작업 또는 Cron 일정

Cron 작업 또는 Cron 일정은 명령을 실행할 시간과 요일을 지정하는 특정 지침 또는 명령 집합입니다. cron 테이블 내에 여러 실행 명령이 있을 수 있습니다.

Crontab을 통해 Python 스크립트 실행

Python 스크립트는 다음과 같은 간단한 단계에 따라 Crontab의 도움으로 실행할 수 있습니다.

  • 실행할 Python 스크립트를 찾거나 정의하십시오.
  • 작업하려는 터미널에서 crontab -e 명령을 실행합니다.
  • 이제 i를 눌러 편집 모드로 들어갑니다.
  • 실행할 Python 스크립트의 경로를 지정할 수 있는 예약된 명령을 입력합니다.
  • Esc 버튼을 눌러 편집 모드를 종료할 수 있습니다.
  • :wq 명령을 사용하여 Crontab을 만들고 작성합니다.

크론탭의 예

다음은 다양한 시나리오에서 Crontab이 어떻게 보이는지에 대한 몇 가지 예입니다.

  1. 컴퓨터의 특정 위치 또는 경로에서 매일 특정 시간에 일부 임시 파일을 제거합니다.

    30 18 * * * rm /home/someuser/tmp/*
    
  2. 7일마다 실행되는 몇 가지 명령:

    0 0 */7 * * shell_command_here
    
  3. 매분 시스템에서 스크립트 실행:

    * * * * * cd/Users/name/Automation && /usr/bin/python testing_crontabs.py
    

이제 우리만의 스크립트를 생성하고 Crontab을 통해 실행해 봅시다. 다음은 이 기사에서 사용할 Python 스크립트입니다.

예제 코드:

#! /usr/bin/python3

import sys
from datetime import datetime


def main(args):
    result = 1
    for arg in args[1:]:
        result *= int(arg)

    print(f"Result: {result} on: {datetime.now()}.")


if __name__ == "__main__":
    main(sys.argv)

출력:

crontab 파이썬 스크립트

이제 선택한 터미널에서 sudo chmod +x main.py 명령을 실행하여 파일을 실행 가능하게 만듭니다.

이제 터미널에서 crontab -e를 실행하고 제공된 옵션에서 편집기를 선택하라는 메시지가 표시되면 이 기사에 대해 nano를 선택하고 다음 cron 명령을 추가합니다.

*/2 * * * * /home/$(USER)/myscript.py 1 2 3 4 5 >> /home/$(USER)/outputfile.txt

USER를 특정 시스템의 사용자 이름으로 바꿔야 합니다. 편집기를 저장하고 종료하면 이제 Crontab이 준비되어 작동합니다.

우리가 어떻게 알아? Crontab에 따르면 스크립트는 2분마다 실행되어야 합니다.

작가: Fariba Laiq
Fariba Laiq avatar Fariba Laiq avatar

I am Fariba Laiq from Pakistan. An android app developer, technical content writer, and coding instructor. Writing has always been one of my passions. I love to learn, implement and convey my knowledge to others.

LinkedIn

관련 문장 - Python Cron