cronジョブのタイミング


8

cronジョブを9:30に開始し、5分ごとに作業し、毎日16:30に停止したいと思います。この種のスケジューリングは1つで可能ですか、それとも2つのcronジョブが必要ですか?

回答:


10

私は次のように考えています。

30/5 9-16 * * *  /usr/bin/script_to_run.sh

タイミング構文の詳細については、wikiページを参照してください。実行時間をファイルに記録するスクリプトでこれをテストすることをお勧めします。

#!/bin/bash

echo "Cron ran at: " `date` >> /var/log/crontimetest.log

2
「30/5」が使用されているのに驚いたので、cronのソースコード、具体的にはcrontabの各行を解析するentry.cを調べました。関数get_range()では、最初の数値(この例では30)の後の文字が「-」であるかどうかを確認します。そうでない場合、「/」は表示されません。これはバグです。「 '/'は*またはnmの範囲の後にのみ意味がある」という形式の警告(またはエラーメッセージ)を出力するはずです。ごめんなさい!
Paul Vixie

7

3つのcrontabエントリが必要です。

30-55/5 9 * * * /usr/bin/script-to-run.sh
*/5 10-15 * * * /usr/bin/script-to-run.sh
0-30/5 16 * * * /usr/bin/script-to-run.sh

crontabエントリの奇妙で役に立たない構文については、linux、bsd、または私を責めないでください。これはAT&T Bell Labsで発明され、後にPOSIXの一部として標準化されました。


4

3つの仕事が必要だと思います。

 */5 10-15 * * * yourjob
 0,5,10,15,20,25,30 16 * * * yourjob
 30,35,40,45,50,55 9 * * * yourjob
弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.