13

45分ごとにスクリプトを実行する用意があります(毎時45分ではありません)

例:10:00、10:45、11:30、12:15など。

*/45 * * * *

これが正しい表現かどうかはわかりません。

4

2 に答える 2

14

私はそれがあなたが望むことをしないと思う(編集:私は今ではかなり確信している):フィールドは別々であり*/45数分間はに過ぎない0,45*/45うまくいかない場合は、次の3つのエントリを使用します。

0,45  0-23/3 * * *
30    1-23/3 * * *
15    2-23/3 * * *

entry.cvixie cronソースのファイルを見ると、各エントリの各フィールドが、そのフィールドで許可されている値のビットマップによって解析されget_list、表されていることがわかります。この段階で*/45との区別が失われるため、これは「スマート」な解釈をほぼ排除します...しかし、数分で存在するように設定されたフラグがあります(を含む)。それで、私たちは、それが私たちの問題とは無関係であることを学ぶために、調べられる単一の場所を見てみます。これで、 「毎時45分ごと」:0:00、0:45、1:00、1:45などを意味することが確実にわかりました。0,45MIN_STAR**/45cron.cMIN_STAR*/45

マニュアルの不幸な一節を引用して、ここで自信を持って反対のことを述べている2つの答えがありました:

アスタリスクの後のステップも許可されているため、「2時間ごと」と言いたい場合は、「*/2」を使用してください。

幸運なことに、偶数時間の24時間制で、「毎日0:00から2時間ごと」と「通常2時間ごと」を区別できません。マニュアルが重要なケースを文書化するのに十分に進んでおらず、* */2222時間ごとを意味する印象を与えているのは残念です。そうではありません。ステップ付きのスターは、それが使用されているフィールドの値のリストの省略形です。他のフィールドとは相互作用しません。

于 2013-01-25T08:28:10.877 に答える
0

cronの基本的なタイミングでは、システムは1分に1回チェックして、実行するcronジョブがあるかどうかを確認します。それはあなたのcrontabを見て、実行する時が来たら、poof、実行します!しかし、45分ごとは、常に文字盤の15分マークに当たる間隔です。たとえば、ゼロから開始すると、最初は0:45です。次はゼロから90分、つまり1:30になり、次は2:15になります...スクリプトを実行する各インスタンスの時間は、分針が12、3になることが簡単にわかります。 6、または9。15分ごとにスクリプトを実行し、その時間が正しいかどうかを確認すると、スクリプトを実行できます。おそらくテーブルを使用するか、モジュロ機能を使用する可能性があります。乾杯!

于 2017-10-10T17:10:49.140 に答える