2012-11-02 24 views
34

Cronに午前2時と午前3時に実行予定のジョブがある場合、これらのジョブはどのように夏時間の影響を受けますか?夏時間とCron

時間が1時間後にシフトすると、時間は2:59:59 amから2:00:00 amに直接移動しますか? 2時の仕事は2回、3時の仕事は1回実行されるという意味ですか?または、時間が最初に3:00:00 amに変更されてから2:00:00に変更され、両方のジョブが2回実行されますか?

時間が1時間前に移動すると、午前1時59分59秒から午前3時00分になり、2時ジョブが実行されず、3時ジョブが1回実行されます。または、2:00:00〜3:00:00にタイムシフトすると、両方のジョブが1回実行されますか?

要するに、私は、1時間に3時間が1回または2回起こり、1時間を失うと2時が起こると思います。私はGoogleで見るとこれについて何かを見つけることができませんでした。

答えて

35

回答は、使用しているcronの変種/拡張機能に依存します。一部のバリアントは夏時間を処理しないため、ジョブが失われ、ジョブが2回実行されます。

Paul Vixie cronを使用している場合は、DSTの変更が処理されます。 cron man pageあたりとして:

のcronチェック分ごとにそのスプールディレクトリの MODTIME(または/ etc/crontabの上MODTIME)は夏時間を参照して、

、さらには変更されているかどうかを確認します

夏時間(第二パラは明らかにあなたの答えを説明)し、その他の時間は

Local time changes of less than three hours, such as those caused by 
    the start or end of Daylight Saving Time, are handled specially. This 
    only applies to jobs that run at a specific time and jobs that are run 
    with a granularity greater than one hour. Jobs that run more fre- 
    quently are scheduled normally. 

    If time has moved forward, those jobs that would have run in the inter- 
    val that has been skipped will be run immediately. Conversely, if time 
    has moved backward, care is taken to avoid running jobs twice. 

    Time changes of more than 3 hours are considered to be corrections to 
    the clock or timezone, and the new time is used immediately. 
を変更します

時間シフトが2時59分59秒または3時0分になると、cronは状況を処理して欠落したものだけを実行し、実行済みのジョブを実行しないで実行します。

+1

リンクが壊れています。 Paul Vixieが何をcronしていますか?私はインターネット上で何も見つかりませんでした。 –

+1

存在しないページのアーカイブへのリンクは次のとおりです。https://web.archive.org/web/20130905110602/http://unixhelp.ed.ac.uk/CGI/man-cgi?cron+8ここには、Linuxのmanページをホストしている現在のサイトがあります:https://linux.die.net/man/8/cron –