파이썬으로 cron 작업 관리

    cronpi란? crontab의 처리가 더 쉽게 관리할 수 없는가와 여러가지 고민한 결과, Python으로 패키지를 만들기로 했습니다. 사실은 이름을 "cronpy"로 하고 싶었습니다만, 이미 다른 분이 등록하고 있었으므로 "cronpi"로 했습니다. c논일 란 UNIX계 PC(linux/mac)에서 정기적으로 실행하는 처리를 crontab에 등록하는 패키지입니다. Python2계와 3계로 움직입니다.

crontab의 처리를 읽기 쉽게 해줍니다.

Installation


pip install cronpi

샘플



sample.py
# パッケージのインポート
import cronpi

# 毎日午後5時半に実行する処理を登録
cronpi.run_every_day("/opt/backup.sh").on("5:30pm")

기능 목록



cronpi에는 다음과 같은 기능을 가진 함수가 있습니다.


SN
함수 이름
설명


1.
run_by_date
날짜를 YYYY-MM-DD HH : mm로 지정하여 수행 할 수있는 처리

2.
run_every_day
HH:mm에 시간을 지정하는 것으로 매일 할 수 있는 처리

3.
run_every_week
요일 이름을 지정하여 실행할 수 있는 처리

4.
run_every_month
날짜를 지정하여 수행할 수 있는 처리

5.
run_every_year
달의 이름과 날짜를 지정하여 수행할 수 있는 처리

6.
run_custom
"crontab -e"에 입력하는 1 행의 내용을 지정해 실행할 수 있는 처리


위의 함수는 두 개의 인수를 받아들입니다.
cronpi.XXXX(, ?)


parameter
유형
description


command
문자열
정기적으로 실행되는 명령

isOverwrite
bool
false이면 항상 새 작업을 추가합니다. 기본값은 False



첫 번째 인수 명령이 이미 작업에 있고 두 번째 인수가 isOverwrite = True이면 새 작업이 아닌 기존 내용을 새 내용으로 변경합니다.

사용법



① 한 번만 실행하는 처리



· 날짜를 지정하여 실행할 처리 등록
cronpi.run_by_date("/some/command").on("2020-10-20 5:30pm")

※ Cron의 사양상 「년」의 지정을 할 수 없기 때문에, 2020년 이후도 매년 실행됩니다.
실행 후 1년 이내에 수동으로 삭제해야 합니다.

② 매일 실행하는 처리



· 매일 실행되는 처리 등록
cronpi.run_every_day("/some/command").on("5:30pm")

③ 매주 실행하는 처리



· 매주 특정 요일에 실행할 처리 등록
cronpi.run_every_week("/some/command").on("sunday", time="17:30")

・복수요일 지정도 가능
cronpi.run_every_week("/some/command").on(["sat", "sun"], time="5:30PM")

④ 매월 실행하는 처리



· 매월 실행되는 처리 등록
cronpi.run_every_month("/some/command").on(10, time="17:30")

· 여러 날 지정 가능
cronpi.run_every_month("/some/command").on([10,20], time="17:30")

⑤ 매년 실행하는 처리



· 특정 월에 실행할 처리 등록
cronpi.run_every_year("/some/command").on("january", day=10, time="5:30am")

· 여러 달 등록 가능
cronpi.run_every_year("/some/command").on(["jan", "oct"], day=10, time="5:30")

⑥ 커스텀 처리



· 맞춤 등록
cronpi.run_custom("* * * * * /some/command")

보충



「get_job_list」함수를 사용하는 것으로 현재의 작업의 일람을 List로서 취득할 수가 있습니다.
cronpi.get_job_list()

좋은 웹페이지 즐겨찾기