特定の時間が経過すると、Cronは動作を停止します。

特定の時間が経過すると、Cronは動作を停止します。

私はcronを使って1日15分ごとにPythonスクリプトを実行します。夜は毎時間実行する必要があります。

私はこれのために2つの項目を作りました。

0 23-5 * * * python /var/www/script.py > /dev/null 2>&1
*/15 6-22 * * * python /var/www/script.py >/dev/null 2>&1

日中は走るのがとてもうまくいきます。これは/var/log/syslogにあるスクリプトの最後のエントリです。

Jan 26 22:45:01 web CRON[20278]: (sysadmin) CMD (python /var/www/script.py > /dev/null 2>&1)

ただし、スクリプトには23:00以降のエントリはありません。スクリプトの次の項目は次のとおりです。

Jan 27 06:00:01 web CRON[26367]: (sysadmin) CMD (python /var/www/script.py > /dev/null 2>&1)

ここで「day-cron」エントリが再起動されます。どちらのエントリも、ユーザー "sysadmin" に対して同じ crontab に作成されます。

ここに何が問題なのかご存知ですか?それとも別の場所で手がかりを見つけることができますか?

私はUbuntu 16.04.1 LTS - 4.4.0-42-genericを実行しています。

答え1

23-5次に変更する23,0,1,2,3,4,5か、次のように2行を追加できます。

0 23 * * * python /var/www/script.py > /dev/null 2>&1
0 0-5 * * * python /var/www/script.py > /dev/null 2>&1

または他の人が言ったように(混合できることを忘れました):

0 23,0-5 * * * python /var/www/script.py > /dev/null 2>&1

理由?23-5有効な範囲ではないからです。範囲は低い値から高い値までのみ可能です。

関連情報