目次
クロンとは何ですか?
の使用を開始するには、pip を使用してモジュールをインストールする必要があります:
は次のようになります:
更新现有的 Cron 作业
从 Crontab 清除作业
计算工作频率
检查作业计划
总结
学习Python

Python ベースの Cron ジョブ管理

Aug 28, 2023 am 11:25 AM

Python ベースの Cron ジョブ管理

このチュートリアルでは、cron ジョブの重要性と、cron ジョブが必要な理由について学びます。 python-crontab (crontab と対話する Python モジュール) が表示されます。 python-crontab モジュールを使用して、Python プログラムから cron ジョブを操作する方法を学習します。

クロンとは何ですか?

システム管理中は、日常的なタスクを実行するためにサーバー上でバックグラウンド ジョブを実行する必要があります。 Cron は、バックグラウンド タスクを定期的に実行するために使用されるシステム プロセスです。 Cron には、特定の時間に実行されるタスクのリストが含まれる crontab というファイルが必要です。これらのジョブはすべて、指定された時刻にバックグラウンドで実行されます。

システムで実行中の cron ジョブを表示するには、ターミナルに移動して次のように入力します。

リーリー

上記のコマンドは、crontab ファイル内のジョブ リストを表示します。新しい cron ジョブを crontab に追加するには、次のように入力します:

リーリー

上記のコマンドは、ジョブをスケジュールできる crontab ファイルを表示します。次のような hello.py というファイルがあるとします。 リーリー

ここで、別のファイルに出力するために上記のスクリプトを実行する cron ジョブをスケジュールするには、次のコード行を追加する必要があります。 リーリー

上記のコード行は、ファイルの実行をスケジュールし、出力を

a.txt

という名前のファイルに出力します。実行されるコマンドの前にある番号は、ジョブがいつ実行されるかを定義します。タイミング構文は 5 つの部分で構成されます。 ###分### ###時間###

1月のいつか
    ###月### ###曜日###
  1. タイミング構文内のアスタリスク (*) は、毎回実行されることを意味します。
  2. Python-Crontab の概要
  3. python-crontab
  4. は、cron ジョブへのアクセスを提供し、Python プログラムから
  5. crontab
  6. ファイルを操作できるようにする Python モジュールです。
crontab

ファイルを手動で変更するプロセスを自動化します。

python-crontab

の使用を開始するには、pip を使用してモジュールをインストールする必要があります:

リーリー

python-crontab をインストールした後、Python プログラムにインポートします。 リーリー 最初の Cron ジョブを作成する python-crontab モジュールを使用して、最初の cron ジョブを作成しましょう。

writeDate.py

という名前の Python プログラムを作成します。 writeDate.py に、現在の日付と時刻をファイルに出力するコードを追加します。

writeDate.py

は次のようになります:

リーリー

上記の変更を保存します。 writeDate.py Python プログラムを毎分実行するようにスケジュールする別の Python プログラムを作成しましょう。 scheduleCron.py という名前のファイルを作成します。 #CronTab

モジュールを

scheduleCron.py

プログラムにインポートします。

リーリー #CronTab モジュールを使用して、システム crontab にアクセスします。

リーリー

上記のコマンドは、システム crontab に対するユーザーのアクセス権を作成します。 cron ジョブをループしてみましょう。特定のユーザー名に対して手動で作成された cron ジョブが表示されるはずです。 リーリー 変更を保存し、

scheduleCron.py

を実行してみると、特定のユーザーの cron ジョブ (存在する場合) のリストが得られるはずです。上記のプログラムを実行すると、同様のものが表示されるはずです: リーリー 引き続き、CronTab モジュールを使用して新しい cron ジョブを作成しましょう。新しいメソッドを使用して新しい cron を作成し、実行するコマンドを指定できます。

リーリー

上記のコード行でわかるように、cron ジョブの実行時に実行されるコマンドを指定しました。新しい cron ジョブを作成したら、cron ジョブをスケジュールする必要があります。 cron ジョブを毎分実行するようにスケジュールしましょう。したがって、1 分間隔で、現在の日付と時刻が

dateInfo.txt

ファイルに追加されます。ジョブを毎分実行するようにスケジュールするには、次のコード行を追加します。 リーリー ジョブをスケジュールした後、ジョブを cron タブに書き込む必要があります。 リーリー

これは

scheduleCron.py ファイルです: リーリー

上記の変更を保存し、Python プログラムを実行します。

リーリー

実行後、次のコマンドを使用して

crontab ファイルを確認します。 リーリー 上記のコマンドにより、新しく追加された cron ジョブが表示されるはずです。

リーリー

少し待ってホーム ディレクトリを確認すると、現在の日付と時刻が含まれる

dateInfo.txt

ファイルが表示されるはずです。ファイルは 1 分ごとに更新され、現在の日付と時刻が既存のコンテンツに追加されます。 <h2 id="更新现有的-Cron-作业">更新现有的 Cron 作业</h2> <p>要更新现有的 cron 作业,您需要使用命令或使用 ID 来查找 cron 作业。使用 <code class="inline">python-crontab 创建 cron 作业时,可以以注释的形式为 cron 作业设置 Id。以下是如何创建带有注释的 cron 作业:

job = my_cron.new(command='python3 home/vaati/Desktop/writeDate.py', comment='dateinfo')
ログイン後にコピー

如上面的代码行所示,已使用注释 dateinfo 创建了一个新的 cron 作业。上述注释可用于查找 cron 作业。

您需要做的是迭代 crontab 中的所有作业,并使用注释 dateinfo 检查作业。这是代码:

 my_cron = CronTab(user='vaati')
 for job in my_cron:
     print(job)
ログイン後にコピー

使用 job.comment 属性检查每个作业的评论。

 my_cron = CronTab(user='vaati')
 for job in my_cron:
     if job.comment == 'dateinfo':
         print(job)
ログイン後にコピー

完成作业后,重新安排 cron 作业并写入 cron。完整代码如下:

from crontab import CronTab

my_cron = CronTab(user='vaati')
for job in my_cron:
    if job.comment == 'dateinfo':
        job.hour.every(10)
        my_cron.write()
        print('Cron job modified successfully')
ログイン後にコピー

保存上述更改并执行 scheduleCron.py 文件。使用以下命令列出 crontab 文件中的项目:

crontab -l
ログイン後にコピー

您应该能够看到带有更新的计划时间的 cron 作业。

* */10 * * * python3 /home/Desktop/vaati/writeDate.py # dateinfo
ログイン後にコピー

从 Crontab 清除作业

python-crontab 提供了从 crontab 中清除或删除作业的方法。您可以根据计划、注释或命令从 crontab 中删除 cron 作业。

假设您想通过 crontab 中的注释 dateinfo 清除作业。代码是:

from crontab import CronTab

my_cron = CronTab(user='vaati')
for job in my_cron
    if job.comment == 'dateinfo':
        my_cron.remove(job)
        my_cron.write()
ログイン後にコピー

同样,要根据评论删除作业,可以直接调用 my_cron 上的 remove 方法,无需任何迭代。这是代码:

my_cron.remove(comment='dateinfo')
ログイン後にコピー

要删除 crontab 中的所有作业,可以调用 remove_all 方法。

my_cron.remove_all()
ログイン後にコピー

完成更改后,使用以下命令将其写回 cron:

my_cron.write()
ログイン後にコピー

计算工作频率

要检查使用 python-crontab 执行作业的次数,您可以使用 Frequency 方法。获得作业后,您可以调用名为 Frequency 的方法,该方法将返回该作业在一年内执行的次数。

from crontab import CronTab

my_cron = CronTab(user='vaati')
for job in my_cron:
    print(job.frequency())
ログイン後にコピー

要查看一小时内作业执行的次数,可以使用方法 Frequency_per_hour

my_cron = CronTab(user='vaati')
for job in my_cron:
    print(job.frequency_per_hour())
ログイン後にコピー

要查看一天中的作业频率,可以使用方法 Frequency_per_day

检查作业计划

python-crontab 提供了检查特定作业的时间表的功能。为此,您需要在系统上安装 croniter 模块。使用 pip 安装 croniter

pip install croniter
ログイン後にコピー

安装 croniter 后,调用作业上的调度方法来获取作业调度。

import datetime

sch = job.schedule(date_from=datetime.datetime.now())
ログイン後にコピー

现在您可以使用 get_next 方法获取下一个作业计划。

print(sch.get_next())
ログイン後にコピー

完整代码如下:

import datetime
from crontab import CronTab

my_crons = CronTab(user='vaati')
for job in my_crons:
    sch = job.schedule(date_from=datetime.datetime.now())
    print(sch.get_next())
ログイン後にコピー

您甚至可以使用 get_prev 方法获取之前的时间表。

总结

在本教程中,您了解了如何开始使用 python-crontab 从 Python 程序访问系统 crontab。使用 python-crontab,您可以自动执行创建、更新和调度 cron 作业的手动过程。

您是否使用过 python-crontab 或任何其他库来访问系统 crontab ?我很想听听你的想法。请在论坛上告诉我们您的建议。

学习Python

无论您是刚刚入门还是希望学习新技能的经验丰富的程序员,都可以通过我们完整的 Python 教程指南学习 Python。

以上がPython ベースの Cron ジョブ管理の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

このウェブサイトの声明
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。

ホットAIツール

Undresser.AI Undress

Undresser.AI Undress

リアルなヌード写真を作成する AI 搭載アプリ

AI Clothes Remover

AI Clothes Remover

写真から衣服を削除するオンライン AI ツール。

Undress AI Tool

Undress AI Tool

脱衣画像を無料で

Clothoff.io

Clothoff.io

AI衣類リムーバー

AI Hentai Generator

AI Hentai Generator

AIヘンタイを無料で生成します。

ホットツール

メモ帳++7.3.1

メモ帳++7.3.1

使いやすく無料のコードエディター

SublimeText3 中国語版

SublimeText3 中国語版

中国語版、とても使いやすい

ゼンドスタジオ 13.0.1

ゼンドスタジオ 13.0.1

強力な PHP 統合開発環境

ドリームウィーバー CS6

ドリームウィーバー CS6

ビジュアル Web 開発ツール

SublimeText3 Mac版

SublimeText3 Mac版

神レベルのコード編集ソフト(SublimeText3)

LinuxターミナルでPythonバージョンを表示するときに発生する権限の問題を解決する方法は? LinuxターミナルでPythonバージョンを表示するときに発生する権限の問題を解決する方法は? Apr 01, 2025 pm 05:09 PM

LinuxターミナルでPythonバージョンを表示する際の許可の問題の解決策PythonターミナルでPythonバージョンを表示しようとするとき、Pythonを入力してください...

あるデータフレームの列全体を、Python内の異なる構造を持つ別のデータフレームに効率的にコピーする方法は? あるデータフレームの列全体を、Python内の異なる構造を持つ別のデータフレームに効率的にコピーする方法は? Apr 01, 2025 pm 11:15 PM

PythonのPandasライブラリを使用する場合、異なる構造を持つ2つのデータフレーム間で列全体をコピーする方法は一般的な問題です。 2つのデータがあるとします...

プロジェクトの基本と問題駆動型の方法で10時間以内にコンピューター初心者プログラミングの基本を教える方法は? プロジェクトの基本と問題駆動型の方法で10時間以内にコンピューター初心者プログラミングの基本を教える方法は? Apr 02, 2025 am 07:18 AM

10時間以内にコンピューター初心者プログラミングの基本を教える方法は?コンピューター初心者にプログラミングの知識を教えるのに10時間しかない場合、何を教えることを選びますか...

中間の読書にどこでもfiddlerを使用するときにブラウザによって検出されないようにするにはどうすればよいですか? 中間の読書にどこでもfiddlerを使用するときにブラウザによって検出されないようにするにはどうすればよいですか? Apr 02, 2025 am 07:15 AM

fiddlereveryversings for the-middleの測定値を使用するときに検出されないようにする方法

正規表現とは何ですか? 正規表現とは何ですか? Mar 20, 2025 pm 06:25 PM

正規表現は、プログラミングにおけるパターンマッチングとテキスト操作のための強力なツールであり、さまざまなアプリケーションにわたるテキスト処理の効率を高めます。

uvicornは、serving_forever()なしでhttpリクエストをどのように継続的に聞いていますか? uvicornは、serving_forever()なしでhttpリクエストをどのように継続的に聞いていますか? Apr 01, 2025 pm 10:51 PM

UvicornはどのようにしてHTTPリクエストを継続的に聞きますか? Uvicornは、ASGIに基づく軽量のWebサーバーです。そのコア機能の1つは、HTTPリクエストを聞いて続行することです...

人気のあるPythonライブラリとその用途は何ですか? 人気のあるPythonライブラリとその用途は何ですか? Mar 21, 2025 pm 06:46 PM

この記事では、numpy、pandas、matplotlib、scikit-learn、tensorflow、django、flask、and requestsなどの人気のあるPythonライブラリについて説明し、科学的コンピューティング、データ分析、視覚化、機械学習、Web開発、Hの使用について説明します。

文字列を介してオブジェクトを動的に作成し、Pythonでメソッドを呼び出す方法は? 文字列を介してオブジェクトを動的に作成し、Pythonでメソッドを呼び出す方法は? Apr 01, 2025 pm 11:18 PM

Pythonでは、文字列を介してオブジェクトを動的に作成し、そのメソッドを呼び出す方法は?これは一般的なプログラミング要件です。特に構成または実行する必要がある場合は...

See all articles