45分ごとにスクリプトを実行する用意があります(毎時45分ではありません)
例:10:00、10:45、11:30、12:15など。
*/45 * * * *
これが正しい表現かどうかはわかりません。
45分ごとにスクリプトを実行する用意があります(毎時45分ではありません)
例:10:00、10:45、11:30、12:15など。
*/45 * * * *
これが正しい表現かどうかはわかりません。
私はそれがあなたが望むことをしないと思う(編集:私は今ではかなり確信している):フィールドは別々であり、*/45
数分間はに過ぎない0,45
。*/45
うまくいかない場合は、次の3つのエントリを使用します。
0,45 0-23/3 * * *
30 1-23/3 * * *
15 2-23/3 * * *
entry.c
vixie cronソースのファイルを見ると、各エントリの各フィールドが、そのフィールドで許可されている値のビットマップによって解析されget_list
、表されていることがわかります。この段階で*/45
との区別が失われるため、これは「スマート」な解釈をほぼ排除します...しかし、数分で存在するように設定されたフラグがあります(を含む)。それで、私たちは、それが私たちの問題とは無関係であることを学ぶために、調べられる単一の場所を見てみます。これで、 「毎時45分ごと」:0:00、0:45、1:00、1:45などを意味することが確実にわかりました。0,45
MIN_STAR
*
*/45
cron.c
MIN_STAR
*/45
マニュアルの不幸な一節を引用して、ここで自信を持って反対のことを述べている2つの答えがありました:
アスタリスクの後のステップも許可されているため、「2時間ごと」と言いたい場合は、「*/2」を使用してください。
幸運なことに、偶数時間の24時間制で、「毎日0:00から2時間ごと」と「通常2時間ごと」を区別できません。マニュアルが重要なケースを文書化するのに十分に進んでおらず、* */22
22時間ごとを意味する印象を与えているのは残念です。そうではありません。ステップ付きのスターは、それが使用されているフィールドの値のリストの省略形です。他のフィールドとは相互作用しません。
cronの基本的なタイミングでは、システムは1分に1回チェックして、実行するcronジョブがあるかどうかを確認します。それはあなたのcrontabを見て、実行する時が来たら、poof、実行します!しかし、45分ごとは、常に文字盤の15分マークに当たる間隔です。たとえば、ゼロから開始すると、最初は0:45です。次はゼロから90分、つまり1:30になり、次は2:15になります...スクリプトを実行する各インスタンスの時間は、分針が12、3になることが簡単にわかります。 6、または9。15分ごとにスクリプトを実行し、その時間が正しいかどうかを確認すると、スクリプトを実行できます。おそらくテーブルを使用するか、モジュロ機能を使用する可能性があります。乾杯!