Python을 사용한 Linux 작업 예약

적시에 친구에게 이메일을 보내거나 특정 소스에서 파일을 다운로드하는 등 데스크톱에서 기본 작업을 자동화하는 것을 고려해 본 적이 있습니까?

운영 체제에서 작업 스케줄링을 알고 있다면 가능합니다.

이 기사에서는 Linux에서 작업을 예약하는 방법을 보여줍니다(여기서는 Ubuntu 22.04를 사용합니다).

크론



Linux에서 "cron"명령 유틸리티는 작업 예약에 사용됩니다. Cron은 시간을 의미하는 그리스어 "Chronos"에서 파생됩니다. 수행할 작업과 함께 모든 cron은 crontab 파일에 저장됩니다.

cron 구문은 다음과 같습니다.

 ┌───────────── minute (0 - 59)
 │ ┌───────────── hour (0 - 23)
 │ │ ┌───────────── day of the month (1 - 31)
 │ │ │ ┌───────────── month (1 - 12)
 │ │ │ │ ┌───────────── day of the week (0 - )
 │ │ │ │ │                                 
 │ │ │ │ │
 │ │ │ │ │
 * * * * * <command>


예를 들어 "25 May 18:30"을 나타내려는 경우 cron 표현은 다음과 같습니다.

30 18 25 5 *


우분투에서 크론탭 사용하기



Crontab을 사용하여 Python 스크립트를 자동으로 실행해 봅시다. tkinter 모듈을 사용하여 간단한 GUI 앱을 만드는 Python 프로그램을 작성하겠습니다.

from tkinter import *

window = Tk(className="App")
window.geometry("300x300")

label = Label(window, text="Hello World")
label.pack()

window.mainloop()


이제 이 Python 스크립트를 디렉터리에 저장하고 파일 위치를 복사합니다.

터미널을 열고 유형

crontab -e


이 명령은 해당 터미널에서 Crontab 파일을 엽니다(기본 설정에 따라 vim/nano/emacs 편집기. 저는 nano를 사용하고 있습니다.).



원하는 경우 모든 주석을 제거하십시오.
해당 파일에 추가 줄 추가

43 13 25 5 * /usr/bin/python3 -u /path/of/file/script.py


참고: 작업을 입력하는 동안 python3 인터프리터(Ubuntu의 usr/bin/python3) 경로를 지정하십시오.
터미널에서 whereis python3를 실행하여 경로를 가져옵니다.

따라서 제 시간에 자동으로 새 창이 나타납니다.



유용한 crontab 명령이 많이 있습니다. 여기에 나열하겠습니다.

crontab -e // opens a new crontab file
crontab -l // shows list of job scheduled
crontab -r // deletes user's crontab
crontab -h // to display list of commands available in crontab 


python-crontab 모듈을 사용하여 Crontab에 액세스



Crontab 파일을 열고 작업을 수동으로 입력하는 것은 지루한 작업입니다.
Pythonpython-crontab에는 다음을 수행하는 데 도움이 되는 모듈이 있습니다.
작업을 쉽게 예약하십시오.

설치python-crontab .

pip3 install python-crontab


새 Python 파일을 만듭니다. 현재 사용자로 개체 가져오기 및 초기화Crontab
from crontab import CronTab
cron = CronTab(user="<username>")


참고: 사용자 이름을 얻으려면 터미널에 whoami를 입력하십시오.
cron.new() 기능을 사용하여 새 명령을 설정합니다. 같은 파일을 실행해 봅시다.

job = cron.new("/usr/bin/python3 -u /path/of/file/script.py")


이제 작업을 예약합니다.

job.minute.on(43)
job.hour.on(13)
job.day.on(25)
job.month.on(5) # That's 25th May 13:43


변경 사항을 저장합니다.

cron.write()


이 프로그램을 실행하고 확인crontab -l하여 작업이 예약되었는지 여부를 확인합니다.

그게 다야! Python을 사용하여 작업을 예약했습니다.

잠깐, 기다려



이것은 dev.to의 첫 번째 기사입니다. project 작업을 하던 중 작업을 자동화하기가 정말 쉬운 Linux의 작업 스케줄링을 발견했습니다. 이 기사가 마음에 들면 dev.to에서 저를 팔로우하여 더 흥미로운 기사를 확인하십시오.

팔로우 👇🏻
  • GitHub


  • 좋은 웹페이지 즐겨찾기