Python ベースの Cron ジョブ管理
このチュートリアルでは、cron ジョブの重要性と、cron ジョブが必要な理由について学びます。 python-crontab
(crontab
と対話する Python モジュール) が表示されます。 python-crontab
モジュールを使用して、Python プログラムから cron ジョブを操作する方法を学習します。
クロンとは何ですか?
システム管理中は、日常的なタスクを実行するためにサーバー上でバックグラウンド ジョブを実行する必要があります。 Cron は、バックグラウンド タスクを定期的に実行するために使用されるシステム プロセスです。 Cron には、特定の時間に実行されるタスクのリストが含まれる crontab
というファイルが必要です。これらのジョブはすべて、指定された時刻にバックグラウンドで実行されます。
システムで実行中の cron ジョブを表示するには、ターミナルに移動して次のように入力します。
リーリー上記のコマンドは、crontab
ファイル内のジョブ リストを表示します。新しい cron ジョブを crontab
に追加するには、次のように入力します:
上記のコマンドは、ジョブをスケジュールできる crontab
ファイルを表示します。次のような hello.py
というファイルがあるとします。
リーリー
上記のコード行は、ファイルの実行をスケジュールし、出力を
a.txt という名前のファイルに出力します。実行されるコマンドの前にある番号は、ジョブがいつ実行されるかを定義します。タイミング構文は 5 つの部分で構成されます。
###分###
###時間###
-
###月###
###曜日###
- タイミング構文内のアスタリスク (*) は、毎回実行されることを意味します。
- Python-Crontab の概要
- python-crontab は、cron ジョブへのアクセスを提供し、Python プログラムから
- crontab ファイルを操作できるようにする Python モジュールです。
ファイルを手動で変更するプロセスを自動化します。
python-crontabの使用を開始するには、pip を使用してモジュールをインストールする必要があります:
リーリーpython-crontab
をインストールした後、Python プログラムにインポートします。
リーリー
最初の Cron ジョブを作成する
python-crontab
モジュールを使用して、最初の cron ジョブを作成しましょう。
という名前の Python プログラムを作成します。 writeDate.py
に、現在の日付と時刻をファイルに出力するコードを追加します。
は次のようになります:
リーリー上記の変更を保存します。
writeDate.py
Python プログラムを毎分実行するようにスケジュールする別の Python プログラムを作成しましょう。 scheduleCron.py
という名前のファイルを作成します。
#CronTab
scheduleCron.py
プログラムにインポートします。
リーリー
#CronTab
モジュールを使用して、システム crontab
にアクセスします。
上記のコマンドは、システム crontab
に対するユーザーのアクセス権を作成します。 cron ジョブをループしてみましょう。特定のユーザー名に対して手動で作成された cron ジョブが表示されるはずです。
リーリー
変更を保存し、
を実行してみると、特定のユーザーの cron ジョブ (存在する場合) のリストが得られるはずです。上記のプログラムを実行すると、同様のものが表示されるはずです:
リーリー
引き続き、CronTab
モジュールを使用して新しい cron ジョブを作成しましょう。新しいメソッドを使用して新しい cron を作成し、実行するコマンドを指定できます。
上記のコード行でわかるように、cron ジョブの実行時に実行されるコマンドを指定しました。新しい cron ジョブを作成したら、cron ジョブをスケジュールする必要があります。
cron ジョブを毎分実行するようにスケジュールしましょう。したがって、1 分間隔で、現在の日付と時刻が
ファイルに追加されます。ジョブを毎分実行するようにスケジュールするには、次のコード行を追加します。
リーリー
ジョブをスケジュールした後、ジョブを cron タブに書き込む必要があります。
リーリー
scheduleCron.py ファイルです:
リーリー
リーリー
実行後、次のコマンドを使用して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 サイトの他の関連記事を参照してください。

ホットAIツール

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

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

Undress AI Tool
脱衣画像を無料で

Clothoff.io
AI衣類リムーバー

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

人気の記事

ホットツール

メモ帳++7.3.1
使いやすく無料のコードエディター

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

ゼンドスタジオ 13.0.1
強力な PHP 統合開発環境

ドリームウィーバー CS6
ビジュアル Web 開発ツール

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

ホットトピック









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

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

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

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

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

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

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

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